mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-27 17:13:20 +01:00
Allow specific optimization passes to be requested from the command line.
Now you can run "`ldc test.d -c -mem2reg -simplifycfg`" if you feel the urge. The -O<N> options are still supported, and are inserted in the passes list in the position where they appear on the command line. (so -simplifycfg -O1 -instcombine does the "right thing") One small change: -inline is renamed to -enable-inlining due to a naming conflict with the option to add the -inline pass. -inline now inserts the inlining pass in the position specified, not in the middle of -O<N>. (ldmd has been updated to translate -inline to -enable-inlining)
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#define NO_COUT_LOGGER
|
||||
#include "gen/logger.h"
|
||||
#include "gen/cl_options.h"
|
||||
#include "gen/optimizer.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -111,12 +112,12 @@ int linkExecutable(const char* argv0)
|
||||
args.push_back("-strip-debug");
|
||||
|
||||
// optimization level
|
||||
if (!global.params.optimize)
|
||||
if (!optimize())
|
||||
args.push_back("-disable-opt");
|
||||
else
|
||||
{
|
||||
const char* s = 0;
|
||||
switch(global.params.optimizeLevel)
|
||||
switch(optLevel())
|
||||
{
|
||||
case 0:
|
||||
args.push_back("-disable-opt");
|
||||
@@ -138,7 +139,7 @@ int linkExecutable(const char* argv0)
|
||||
}
|
||||
|
||||
// inlining
|
||||
if (!(global.params.useInline || global.params.llvmInline))
|
||||
if (!(global.params.useInline || doInline()))
|
||||
{
|
||||
args.push_back("-disable-inlining");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user