Commit Graph
1213 Commits
Author SHA1 Message Date
Frits van Bommel 5a04c4e9a1 For the outermost function needing a context frame, use the address of that
frame as the nest argument instead of the address of a single-element list
containing only that frame address.
This saves some stack space and reduces memory accesses.
2009-04-13 04:09:08 +02:00
Frits van Bommel cc492ecc82 Merge 2009-04-12 22:22:15 +02:00
Frits van Bommel 071bad95dc Add some alignment info where LLVM might otherwise be more pessimistic.
In particular, %.nest_arg is always aligned even though it's bitcast from i8*.

Pointers in vtables are also guaranteed to be stored at aligned addresses.
2009-04-12 21:56:43 +02:00
Frits van Bommel 751f528969 Implement -nested-ctx=hybrid 2009-04-12 20:23:00 +02:00
Christian Kamm 893e17c259 Simplify array casts and implement dyn array -> static array. 2009-04-12 19:56:03 +02:00
Christian Kamm a6ba7d16b2 Fix mini test runner. 2009-04-12 19:53:41 +02:00
Frits van Bommel 8820024070 Add an option to change the way nested variables are handled.
Only one value is implemented, which is the old way.
2009-04-12 16:22:21 +02:00
Christian Kamm d251e5d1f4 Implement static array -> static array cast. Fixes #223.
dynamic array -> static array is still misssing!
2009-04-12 16:18:02 +02:00
Christian Kamm b8b9c41827 Introduce checks to fix #173. 2009-04-12 14:58:18 +02:00
Christian Kamm 18baa5c40b Remove unnecessary GCC_EXE CMake flag. Closes #208, thanks impulze. 2009-04-12 13:50:18 +02:00
Frits van Bommel b5af30636e Isolate all knowledge of what a function's nested context looks like in a
single place. No functional change.
2009-04-12 13:08:24 +02:00
Frits van Bommel 605593bcef Reduce include-order dependencies 2009-04-12 12:52:01 +02:00
Frits van Bommel 35a3d86cc6 Remove reference to llvm::cl::AllowInverse enum value which was removed in
LLVM trunk.
2009-04-08 23:05:30 +02:00
Christian Kamm 2347526ca8 Disable frame pointer elimination when -g or -gc is passed. 2009-04-08 21:12:08 +02:00
Lars Ivar Igesund 8063e8df9d Ported script to Tango 2009-04-07 18:37:19 +02:00
Christian Kamm ba200214d4 Make sure -run doesn't consume the config file flags. 2009-04-05 15:58:28 +02:00
Christian Kamm 253e743d05 Apply fawzi's stacktracing update from #254. 2009-04-05 15:02:44 +02:00
Tomas Lindquist Olsen 3d1f8cc565 Merged DMD 1.042. 2009-04-03 17:59:34 +02:00
Tomas Lindquist Olsen 57bf95cb42 Moved some DMDFE files into a seperate dmd/root subdir to closer match the DMD file structure since 1.041. 2009-04-03 17:02:52 +02:00
Frits van Bommel b7b54b5878 Don't expand tilde ('~') in paths unless it's the first character of the path
in question.
This should fix #255.
2009-04-03 16:35:47 +02:00
Tomas Lindquist Olsen 9c4b2b4036 Started seperating type resolution from the rest of codegen again, the merge had too many regressions. 2009-04-03 16:34:11 +02:00
Tomas Lindquist Olsen 4df1f9be35 updated ir/irtype.h guard name 2009-04-03 14:54:17 +02:00
Kelly Wilson 7a1052a2fc Some more fixups for mingw -- missing underscores 2009-04-02 17:27:53 -06:00
Christian Kamm 04f3c61b97 Make sure debug info is only declared once per alloca. 2009-04-02 20:56:39 +02:00
Christian Kamm 8d01068c9b Apply small includes patch for FreeBSD. Thanks kimelto! 2009-04-02 19:16:44 +02:00
Frits van Bommel ff72b1f640 Make sure -defaultlib and -debuglib don't get cut off if longer than 63 chars,
and clean up some overly verbose code.
2009-04-01 00:52:31 +02:00
Frits van Bommel c6af051d82 Automated merge with http://hg.dsource.org/projects/ldc 2009-04-01 00:13:21 +02:00
Frits van Bommel 3f49ddb6d5 Fix nested references to 'ref' foreach variables.
These "walk around" the array being iterated over, so they're a bit trickier
than other variables to get right.
2009-04-01 00:01:44 +02:00
Tomas Lindquist Olsen c6e9f7f9e2 Moved ir/irtype.* into ir/irdtype.*.
Renamed IrType to IrDType, analogous to IrDSymbol.
2009-03-31 20:21:28 +02:00
Frits van Bommel aa8aad611c Commit requested by lindquist. 2009-03-31 03:06:19 +02:00
Kelly Wilson e2d6a94271 Fix one more naked asm output problem for mingw32 and remove some
duplicate code
2009-03-30 18:22:30 -06:00
Kelly Wilson aae3d56e32 Fix up some naked asm output for mingw32 2009-03-30 18:18:23 -06:00
Frits van Bommel df8547a40f Remove some redundancy from the DValue hierarchy: all subclasses had a 'type'
field and identical implementations of virtual function getType().
Move these to DValue itself, and make getType() non-virtual.
2009-03-31 01:18:35 +02:00
Frits van Bommel b602a13811 Give function & delegate literals, foreach bodies and lazy parameters internal
linkage.
2009-03-30 16:34:36 +02:00
Frits van Bommel b7ca040f7c Fix a bug I noticed. Varargs were broken if preceded by tuple parameters. 2009-03-30 00:00:43 +02:00
Frits van Bommel 972fca5729 Fix #246 by running type->semantic() on parameters so tuples are expanded. 2009-03-29 23:57:51 +02:00
Frits van Bommel b490d80c07 Automated merge with http://hg.dsource.org/projects/ldc 2009-03-29 19:46:37 +02:00
Frits van Bommel 424bb88da0 Enable inlining by default for -O3+. 2009-03-29 19:38:59 +02:00
Christian Kamm c9b82af9f2 Add newlines to end of file. 2009-03-29 19:19:32 +02:00
Frits van Bommel aa508e792a Forgot to commit this file, sorry 2009-03-29 18:50:41 +02:00
Frits van Bommel 6135e4201a Small cleanup: remove mars.h #include 2009-03-29 16:47:19 +02:00
Frits van Bommel 257d305032 Change meaning of optimization levels: -O0 now means 'no optimization' like with
other compilers.
2009-03-29 15:51:14 +02:00
Frits van Bommel e129494812 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)
2009-03-29 15:46:55 +02:00
Christian Kamm f179acda32 Automated merge with http://hg.dsource.org/projects/ldc 2009-03-29 11:44:32 +02:00
Christian Kamm d7de486493 A different fix to #218 and DMD2682 that does not lead to constant folding regressions.
Fixes run/const_15, run/c/const_16_B.
The price is removing the lvalueness of struct literals. If it turns out too
much code depends on this behavior or we don't want to break with DMD, we
could keep struct literals as lvalues and instead convert struct literals used
as expression initializers into struct initializers.
2009-03-29 11:43:45 +02:00
Frits van Bommel 9af4c078a0 Another big-endian fix. (Don't lie to [s]printf...) 2009-03-29 03:53:22 +02:00
Frits van Bommel 7e99e31b91 Clean up some suspicious code.
There's no guarantee a constant of integer type is a ConstantInt, so it's not
safe to just cast<> these to ConstantInt. (It could be a constant expression,
for example)

The code is shorter this way too :).
2009-03-29 03:27:04 +02:00
Frits van Bommel 2586278349 This should fix integers below 64 bit on big-endian systems. 2009-03-29 01:29:30 +01:00
Christian Kamm 875a8b25b2 Fix bug in CaseStatement::semantic when there's no enclosing switch. 2009-03-28 21:10:53 +01:00
Christian Kamm ca6a07e2e5 Emit function bodies before generating the module info to make sure static
ctors are collected correctly. Fixes run/constructor_03.
2009-03-28 20:45:33 +01:00