aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorGinger Bill <github@gingerbill.org>2016-09-21 14:46:56 +0100
committerGinger Bill <github@gingerbill.org>2016-09-21 14:46:56 +0100
commit0e2347e582147019f904e25cf26aa70259c66e38 (patch)
tree4f3aff27dd23764d3c46afbfd94a4f65a87bc37c /src/main.cpp
parent31c11a50370ded9865cf8c1da6baabaa97d38a18 (diff)
Filename as default import name; as .; as _; panic()
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp51
1 files changed, 32 insertions, 19 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 765c80b50..0ae2f684d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -126,33 +126,46 @@ int main(int argc, char **argv) {
isize base_name_len = gb_path_extension(output_name)-1 - output_name;
-
i32 exit_code = 0;
- // For more passes arguments: http://llvm.org/docs/Passes.html
- exit_code = win32_exec_command_line_app(
- // "../misc/llvm-bin/opt %s -o %.*s.bc "
- "opt %s -o %.*s.bc "
- "-memcpyopt "
- "-mem2reg "
- "-die -dse "
- "-dce "
- // "-S "
- // "-debug-pass=Arguments "
- "",
- output_name, cast(int)base_name_len, output_name);
- if (exit_code != 0)
- return exit_code;
-
- PRINT_TIMER("llvm-opt");
+ {
+ char buf[300] = {};
+ u32 buf_len = GetModuleFileNameA(GetModuleHandleA(NULL), buf, gb_size_of(buf));
+ for (isize i = buf_len-1; i >= 0; i--) {
+ if (buf[i] == '\\' ||
+ buf[i] == '/') {
+ break;
+ }
+ buf_len--;
+ }
+
+ // For more passes arguments: http://llvm.org/docs/Passes.html
+ exit_code = win32_exec_command_line_app(
+ // "../misc/llvm-bin/opt %s -o %.*s.bc "
+ "\"%.*sbin\\opt.exe\" %s -o %.*s.bc "
+ "-memcpyopt "
+ "-mem2reg "
+ "-die -dse "
+ "-dce "
+ // "-S "
+ // "-debug-pass=Arguments "
+ "",
+ buf_len, buf,
+ output_name,
+ cast(int)base_name_len, output_name);
+ if (exit_code != 0)
+ return exit_code;
+
+ PRINT_TIMER("llvm-opt");
+ }
#if 1
- gbString lib_str = gb_string_make(gb_heap_allocator(), "-lKernel32.lib");
+ gbString lib_str = gb_string_make(gb_heap_allocator(), "-lKernel32");
// defer (gb_string_free(lib_str));
char lib_str_buf[1024] = {};
gb_for_array(i, parser.system_libraries) {
String lib = parser.system_libraries[i];
isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf),
- " -l%.*s.lib", LIT(lib));
+ " -l%.*s", LIT(lib));
lib_str = gb_string_appendc(lib_str, lib_str_buf);
}