@@ -243,6 +243,11 @@ int emit_asr(const std::string &infile,
243
243
pass_options.always_run = true ;
244
244
pass_options.verbose = compiler_options.verbose ;
245
245
pass_options.pass_cumulative = compiler_options.pass_cumulative ;
246
+ pass_options.all_symbols_mangling = compiler_options.all_symbols_mangling ;
247
+ pass_options.module_name_mangling = compiler_options.module_name_mangling ;
248
+ pass_options.global_symbols_mangling = compiler_options.global_symbols_mangling ;
249
+ pass_options.intrinsic_symbols_mangling = compiler_options.intrinsic_symbols_mangling ;
250
+
246
251
247
252
pass_manager.apply_passes (al, asr, pass_options, diagnostics);
248
253
@@ -345,6 +350,10 @@ int emit_c(const std::string &infile,
345
350
pass_options.run_fun = " f" ;
346
351
pass_options.always_run = true ;
347
352
pass_options.verbose = compiler_options.verbose ;
353
+ pass_options.all_symbols_mangling = compiler_options.all_symbols_mangling ;
354
+ pass_options.module_name_mangling = compiler_options.module_name_mangling ;
355
+ pass_options.global_symbols_mangling = compiler_options.global_symbols_mangling ;
356
+ pass_options.intrinsic_symbols_mangling = compiler_options.intrinsic_symbols_mangling ;
348
357
349
358
pass_manager.apply_passes (al, asr, pass_options, diagnostics);
350
359
@@ -398,6 +407,10 @@ int emit_c_to_file(const std::string &infile, const std::string &outfile,
398
407
pass_options.run_fun = " f" ;
399
408
pass_options.always_run = true ;
400
409
pass_options.verbose = compiler_options.verbose ;
410
+ pass_options.all_symbols_mangling = compiler_options.all_symbols_mangling ;
411
+ pass_options.module_name_mangling = compiler_options.module_name_mangling ;
412
+ pass_options.global_symbols_mangling = compiler_options.global_symbols_mangling ;
413
+ pass_options.intrinsic_symbols_mangling = compiler_options.intrinsic_symbols_mangling ;
401
414
402
415
pass_manager.apply_passes (al, asr, pass_options, diagnostics);
403
416
@@ -1501,6 +1514,7 @@ int main(int argc, char *argv[])
1501
1514
bool print_targets = false ;
1502
1515
bool print_rtl_header_dir = false ;
1503
1516
bool print_rtl_dir = false ;
1517
+ bool separate_compilation = false ;
1504
1518
1505
1519
std::string arg_fmt_file;
1506
1520
// int arg_fmt_indent = 4;
@@ -1579,6 +1593,11 @@ int main(int argc, char *argv[])
1579
1593
app.add_flag (" --enable-cpython" , compiler_options.enable_cpython , " Enable CPython runtime" );
1580
1594
app.add_flag (" --enable-symengine" , compiler_options.enable_symengine , " Enable Symengine runtime" );
1581
1595
app.add_flag (" --link-numpy" , compiler_options.link_numpy , " Enable NumPy runtime (implies --enable-cpython)" );
1596
+ app.add_flag (" --separate-compilation" , separate_compilation, " Generates unique names for all the symbols" );
1597
+ app.add_flag (" --module-mangling" , compiler_options.module_name_mangling , " Mangles the module name" );
1598
+ app.add_flag (" --global-mangling" , compiler_options.global_symbols_mangling , " Mangles all the global symbols" );
1599
+ app.add_flag (" --intrinsic-mangling" , compiler_options.intrinsic_symbols_mangling , " Mangles all the intrinsic symbols" );
1600
+ app.add_flag (" --all-mangling" , compiler_options.all_symbols_mangling , " Mangles all possible symbols" );
1582
1601
1583
1602
// LSP specific options
1584
1603
app.add_flag (" --show-errors" , show_errors, " Show errors when LSP is running in the background" );
@@ -1616,7 +1635,7 @@ int main(int argc, char *argv[])
1616
1635
app.require_subcommand (0 , 1 );
1617
1636
CLI11_PARSE (app, argc, argv);
1618
1637
1619
- lcompilers_unique_ID = LCompilers::get_unique_ID ();
1638
+ lcompilers_unique_ID = separate_compilation ? LCompilers::get_unique_ID (): " " ;
1620
1639
1621
1640
1622
1641
if ( compiler_options.fast && compiler_options.enable_bounds_checking ) {
0 commit comments