Commit Graph
1286 Commits
Author SHA1 Message Date
Frits van Bommel 33eb3133f3 Unbreak nested naked functions. 2009-04-17 01:14:35 +02:00
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