Commit Graph

1235 Commits

Author SHA1 Message Date
Tomas Lindquist Olsen
c7936c2ace !ClassInfo instances were not mutable, this is necessary for .classinfo based locking to work. !ModuleInfo generation was commented out as well. 2009-04-17 00:54:20 +02:00
Tomas Lindquist Olsen
9568616e66 Fixed static struct initializers. 2009-04-17 00:36:21 +02:00
Tomas Lindquist Olsen
803fbf4882 Make !TypeInfo output lazy unless we need to provide full definitions in general. 2009-04-16 22:20:26 +02:00
Tomas Lindquist Olsen
e01917bc0d Make typeinfo for struct 2009-04-16 22:19:36 +02:00
Tomas Lindquist Olsen
8feabfc5c6 Make sure aggregates are resolved before outputting their debug info. 2009-04-16 21:15:42 +02:00
Tomas Lindquist Olsen
948202a1a1 Fixed ClassInfo.interfaces. mini/s.d now runs again. 2009-04-16 21:10:51 +02:00
Tomas Lindquist Olsen
0521f8075c Too strict assertion with generating the interfaceInfosZ symbol. Baseclasses might introduce interfaces. 2009-04-16 21:00:49 +02:00
Tomas Lindquist Olsen
414e58a318 Fixed forward referenced structs. 2009-04-16 20:41:27 +02:00
Tomas Lindquist Olsen
1437bd6b7e Merge. 2009-04-16 20:31:21 +02:00
Tomas Lindquist Olsen
02466de996 Removed invalid assertion. 2009-04-16 20:30:30 +02:00
Tomas Lindquist Olsen
9a86f9c0b5 Fixed some minitest regressions. 2009-04-16 19:21:30 +02:00
Tomas Lindquist Olsen
5db458d8da Completed interface implementation. Hopefully that's it for now.. 2009-04-16 13:18:56 +02:00
Frits van Bommel
7782d80919 Fix typo in comment 2009-04-16 12:01:28 +02:00
Frits van Bommel
5ea141e919 Tweak some optimizations.
Delegates passed to inlined functions now also stand a chance of being inlined.
This should make opApply as efficient as a regular loop, as long as both opApply
and the foreachbody are eligible for inlining; which is to say most non-virtual
opApply invocations will likely get fully inlined now.
(Note: above requires -O2 -enable-inlining or -O3)
2009-04-16 11:58:43 +02:00
Tomas Lindquist Olsen
bb98d68f64 Now compiles again, and fixed type of the Interface[N] ClassInfo symbol. 2009-04-16 11:01:49 +02:00
Frits van Bommel
1ef9941daf Name some types. 2009-04-15 21:37:01 +02:00
Frits van Bommel
8c3cc1467f Remove 'noalias' and 'nocapture' from %.nest_arg. They no longer apply now that
it may point to a struct containing variables from outer functions.
2009-04-15 20:59:21 +02:00
Frits van Bommel
c19ab2e539 Unify %.frames_list and %.frame into a single data structure, generalizing r1212
to all frames instead of just the outer-most one.
2009-04-15 20:59:19 +02:00
Tomas Lindquist Olsen
37cf5a5789 Added Doxygen file.
Completely seperated type and symbol generation. Should fix a lot of bugs, but is not yet 100% complete.
2009-04-15 20:06:25 +02:00
Frits van Bommel
909c6dae18 Fix some unittests for 64-bit asm. They were operating on int variables as if
they were longs.
This was causing asm1_1 to fail when compiled with -O3 because it was
overwriting the spilled value of callee-saved register %rbx, which the runtime
was using as a pointer value at the time.
2009-04-13 17:42:36 +02:00
Frits van Bommel
c44c52296f Give all symbols nested in functions internal linkage, unless it's one of the
other special cases.
(for example: this shouldn't be done if the symbol in question is also nested
in a template; such symbols should get template-like linkage)
2009-04-13 16:16:03 +02:00
Frits van Bommel
376a825075 Fix a bug in nested context code that occured when calling a function nested in
the outermost scope with a context frame from a function using a more nested
context frame.
2009-04-13 12:19:18 +02:00
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