Mercurial > projects > ldc
comparison dmd/mars.h @ 1170:e40c65bd8c5d
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)
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Sun, 29 Mar 2009 15:46:55 +0200 |
parents | e7f0c2b48047 |
children | e961851fb8be |
comparison
equal
deleted
inserted
replaced
1169:2bff538fa3b9 | 1170:e40c65bd8c5d |
---|---|
136 { | 136 { |
137 bool obj; // write object file | 137 bool obj; // write object file |
138 bool link; // perform link | 138 bool link; // perform link |
139 bool verbose; // verbose compile | 139 bool verbose; // verbose compile |
140 char symdebug; // insert debug symbolic information | 140 char symdebug; // insert debug symbolic information |
141 #if !IN_LLVM | |
142 // LDC uses a different mechanism | |
141 bool optimize; // run optimizer | 143 bool optimize; // run optimizer |
142 char optimizeLevel; // optimization level | 144 char optimizeLevel; // optimization level |
145 #endif | |
143 ARCH cpu; // target CPU | 146 ARCH cpu; // target CPU |
144 OS os; // target OS | 147 OS os; // target OS |
145 bool is64bit; // generate 64 bit code | 148 bool is64bit; // generate 64 bit code |
146 bool isLE; // generate little endian code | 149 bool isLE; // generate little endian code |
147 bool useDeprecated; // allow use of deprecated features | 150 bool useDeprecated; // allow use of deprecated features |
208 // LDC stuff | 211 // LDC stuff |
209 OUTPUTFLAG output_ll; | 212 OUTPUTFLAG output_ll; |
210 OUTPUTFLAG output_bc; | 213 OUTPUTFLAG output_bc; |
211 OUTPUTFLAG output_s; | 214 OUTPUTFLAG output_s; |
212 OUTPUTFLAG output_o; | 215 OUTPUTFLAG output_o; |
213 bool llvmInline; | |
214 bool llvmAnnotate; | 216 bool llvmAnnotate; |
215 bool useInlineAsm; | 217 bool useInlineAsm; |
216 | 218 |
217 // target stuff | 219 // target stuff |
218 const char* llvmArch; | 220 const char* llvmArch; |