Commit Graph

  • 0521f8075c Too strict assertion with generating the interfaceInfosZ symbol. Baseclasses might introduce interfaces. Tomas Lindquist Olsen 2009-04-16 21:00:49 +02:00
  • 414e58a318 Fixed forward referenced structs. Tomas Lindquist Olsen 2009-04-16 20:41:27 +02:00
  • 1437bd6b7e Merge. Tomas Lindquist Olsen 2009-04-16 20:31:21 +02:00
  • 02466de996 Removed invalid assertion. Tomas Lindquist Olsen 2009-04-16 20:30:30 +02:00
  • 9a86f9c0b5 Fixed some minitest regressions. Tomas Lindquist Olsen 2009-04-16 19:21:30 +02:00
  • 5db458d8da Completed interface implementation. Hopefully that's it for now.. Tomas Lindquist Olsen 2009-04-16 13:18:56 +02:00
  • 7782d80919 Fix typo in comment Frits van Bommel 2009-04-16 12:01:28 +02:00
  • 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) Frits van Bommel 2009-04-16 11:58:43 +02:00
  • bb98d68f64 Now compiles again, and fixed type of the Interface[N] ClassInfo symbol. Tomas Lindquist Olsen 2009-04-16 11:01:49 +02:00
  • 1ef9941daf Name some types. Frits van Bommel 2009-04-15 21:37:01 +02:00
  • 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. Frits van Bommel 2009-04-15 20:59:21 +02:00
  • c19ab2e539 Unify %.frames_list and %.frame into a single data structure, generalizing r1212 to all frames instead of just the outer-most one. Frits van Bommel 2009-04-15 20:59:19 +02:00
  • 37cf5a5789 Added Doxygen file. Tomas Lindquist Olsen 2009-04-15 20:06:25 +02:00
  • 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. Frits van Bommel 2009-04-13 17:42:36 +02:00
  • 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) Frits van Bommel 2009-04-13 16:16:03 +02:00
  • 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. Frits van Bommel 2009-04-13 12:19:18 +02:00
  • 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. Frits van Bommel 2009-04-13 04:09:08 +02:00
  • cc492ecc82 Merge Frits van Bommel 2009-04-12 22:22:15 +02:00
  • 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*. Frits van Bommel 2009-04-12 21:56:43 +02:00
  • 751f528969 Implement -nested-ctx=hybrid Frits van Bommel 2009-04-12 20:23:00 +02:00
  • 893e17c259 Simplify array casts and implement dyn array -> static array. Christian Kamm 2009-04-12 19:56:03 +02:00
  • a6ba7d16b2 Fix mini test runner. Christian Kamm 2009-04-12 19:53:41 +02:00
  • 8820024070 Add an option to change the way nested variables are handled. Only one value is implemented, which is the old way. Frits van Bommel 2009-04-12 16:22:21 +02:00
  • d251e5d1f4 Implement static array -> static array cast. Fixes #223. dynamic array -> static array is still misssing! Christian Kamm 2009-04-12 16:18:02 +02:00
  • b8b9c41827 Introduce checks to fix #173. Christian Kamm 2009-04-12 14:58:18 +02:00
  • 18baa5c40b Remove unnecessary GCC_EXE CMake flag. Closes #208, thanks impulze. Christian Kamm 2009-04-12 13:50:18 +02:00
  • b5af30636e Isolate all knowledge of what a function's nested context looks like in a single place. No functional change. Frits van Bommel 2009-04-12 13:08:24 +02:00
  • 605593bcef Reduce include-order dependencies Frits van Bommel 2009-04-12 12:52:01 +02:00
  • 35a3d86cc6 Remove reference to llvm::cl::AllowInverse enum value which was removed in LLVM trunk. Frits van Bommel 2009-04-08 23:05:30 +02:00
  • 2347526ca8 Disable frame pointer elimination when -g or -gc is passed. Christian Kamm 2009-04-08 21:12:08 +02:00
  • 8063e8df9d Ported script to Tango Lars Ivar Igesund 2009-04-07 18:37:19 +02:00
  • ba200214d4 Make sure -run doesn't consume the config file flags. Christian Kamm 2009-04-05 15:58:28 +02:00
  • 253e743d05 Apply fawzi's stacktracing update from #254. Christian Kamm 2009-04-05 15:02:44 +02:00
  • 3d1f8cc565 Merged DMD 1.042. Tomas Lindquist Olsen 2009-04-03 17:59:34 +02:00
  • 57bf95cb42 Moved some DMDFE files into a seperate dmd/root subdir to closer match the DMD file structure since 1.041. Tomas Lindquist Olsen 2009-04-03 17:02:52 +02:00
  • b7b54b5878 Don't expand tilde ('~') in paths unless it's the first character of the path in question. This should fix #255. Frits van Bommel 2009-04-03 16:35:47 +02:00
  • 9c4b2b4036 Started seperating type resolution from the rest of codegen again, the merge had too many regressions. Tomas Lindquist Olsen 2009-04-03 16:34:11 +02:00
  • 4df1f9be35 updated ir/irtype.h guard name Tomas Lindquist Olsen 2009-04-03 14:54:17 +02:00
  • 7a1052a2fc Some more fixups for mingw -- missing underscores Kelly Wilson 2009-04-02 17:27:53 -06:00
  • 04f3c61b97 Make sure debug info is only declared once per alloca. Christian Kamm 2009-04-02 20:56:39 +02:00
  • 8d01068c9b Apply small includes patch for FreeBSD. Thanks kimelto! Christian Kamm 2009-04-02 19:16:44 +02:00
  • ff72b1f640 Make sure -defaultlib and -debuglib don't get cut off if longer than 63 chars, and clean up some overly verbose code. Frits van Bommel 2009-04-01 00:52:31 +02:00
  • c6af051d82 Automated merge with http://hg.dsource.org/projects/ldc Frits van Bommel 2009-04-01 00:13:21 +02:00
  • 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. Frits van Bommel 2009-04-01 00:01:44 +02:00
  • c6e9f7f9e2 Moved ir/irtype.* into ir/irdtype.*. Renamed IrType to IrDType, analogous to IrDSymbol. Tomas Lindquist Olsen 2009-03-31 20:21:28 +02:00
  • aa8aad611c Commit requested by lindquist. Frits van Bommel 2009-03-31 03:06:19 +02:00
  • e2d6a94271 Fix one more naked asm output problem for mingw32 and remove some duplicate code Kelly Wilson 2009-03-30 18:22:30 -06:00
  • aae3d56e32 Fix up some naked asm output for mingw32 Kelly Wilson 2009-03-30 18:18:23 -06:00
  • 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. Frits van Bommel 2009-03-31 01:18:35 +02:00
  • b602a13811 Give function & delegate literals, foreach bodies and lazy parameters internal linkage. Frits van Bommel 2009-03-30 16:34:36 +02:00
  • b7ca040f7c Fix a bug I noticed. Varargs were broken if preceded by tuple parameters. Frits van Bommel 2009-03-30 00:00:43 +02:00
  • 972fca5729 Fix #246 by running type->semantic() on parameters so tuples are expanded. Frits van Bommel 2009-03-29 23:57:51 +02:00
  • b490d80c07 Automated merge with http://hg.dsource.org/projects/ldc Frits van Bommel 2009-03-29 19:46:37 +02:00
  • 424bb88da0 Enable inlining by default for -O3+. Frits van Bommel 2009-03-29 19:38:59 +02:00
  • c9b82af9f2 Add newlines to end of file. Christian Kamm 2009-03-29 19:19:32 +02:00
  • aa508e792a Forgot to commit this file, sorry Frits van Bommel 2009-03-29 18:50:41 +02:00
  • 6135e4201a Small cleanup: remove mars.h #include Frits van Bommel 2009-03-29 16:47:19 +02:00
  • 257d305032 Change meaning of optimization levels: -O0 now means 'no optimization' like with other compilers. Frits van Bommel 2009-03-29 15:51:14 +02:00
  • 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") Frits van Bommel 2009-03-29 15:46:55 +02:00
  • f179acda32 Automated merge with http://hg.dsource.org/projects/ldc Christian Kamm 2009-03-29 11:44:32 +02:00
  • d7de486493 A different fix to #218 and DMD2682 that does not lead to constant folding regressions. Christian Kamm 2009-03-29 11:43:45 +02:00
  • 9af4c078a0 Another big-endian fix. (Don't lie to [s]printf...) Frits van Bommel 2009-03-29 03:53:22 +02:00
  • 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) Frits van Bommel 2009-03-29 03:27:04 +02:00
  • 2586278349 This should fix integers below 64 bit on big-endian systems. Frits van Bommel 2009-03-29 01:29:30 +01:00
  • 875a8b25b2 Fix bug in CaseStatement::semantic when there's no enclosing switch. Christian Kamm 2009-03-28 21:10:53 +01:00
  • ca6a07e2e5 Emit function bodies before generating the module info to make sure static ctors are collected correctly. Fixes run/constructor_03. Christian Kamm 2009-03-28 20:45:33 +01:00
  • 42da8b98b1 Do not skip abstract function declarations if they have a function body. Fixes abstract_17_A,B. Christian Kamm 2009-03-28 20:25:59 +01:00
  • c5a09c9deb Force initialize the runtime module in Module::genLLVMModule. It is required for all non-trivial D modules anyway, so why load it lazily? This fixes run/typeid_83.d (DtoDeclareTypeInfo expects runtime to be initialized) Christian Kamm 2009-03-28 20:01:37 +01:00
  • 0ef57dcfbe Reenable error for gotos into or out of finally blocks. Christian Kamm 2009-03-28 19:16:53 +01:00
  • b2e601bd74 Add back some enclosing scope-exit information to the frontend to produce proper error messages inside switch statements. Christian Kamm 2009-03-28 14:39:16 +01:00
  • 99168f443f Fix goto inside synchronized functions. Christian Kamm 2009-03-28 14:26:23 +01:00
  • 1bf5934519 Fix path to llvmasm.di in runtime CMakeList Christian Kamm 2009-03-28 10:50:44 +01:00
  • 14b8aff809 Fixed issue with runtime supplied typeinfo generating multiple symbols. Tomas Lindquist Olsen 2009-03-28 09:45:33 +01:00
  • 740cdaa588 Fixed forward reference problem in struct methods on x86-64. Tomas Lindquist Olsen 2009-03-28 09:00:32 +01:00
  • e61562033d Added support for tuple return with __asmtuple!(int,int) etc. Tomas Lindquist Olsen 2009-03-28 08:25:58 +01:00
  • 1809214995 Added support for single D type register return from __asm. Tomas Lindquist Olsen 2009-03-28 07:24:53 +01:00
  • 99b863e2b1 Added initial support for raw LLVM inline asm. Tomas Lindquist Olsen 2009-03-28 06:32:06 +01:00
  • 36f6ebc77f - Versioned Expresssion::toElem with #if IN_DMD/IN_LLVM. Tomas Lindquist Olsen 2009-03-28 05:00:43 +01:00
  • 06a29342d3 Added missing new files. Tomas Lindquist Olsen 2009-03-27 23:24:47 +01:00
  • be3bfbff5d Fixed problems introduced by previous commits that prevented Tango from compiling. Tomas Lindquist Olsen 2009-03-27 23:17:04 +01:00
  • ec986231e5 Eliminated the need for resolve, declare, const-init and define lists to drive code generation. Tomas Lindquist Olsen 2009-03-27 21:50:32 +01:00
  • daef67acc3 Changed use of toObjFile to a new codegen method. More versioning of DMD specific codegen code. Tomas Lindquist Olsen 2009-03-27 17:54:27 +01:00
  • c42c90ea80 * Moved ir/irsymbol.cpp/h into ir/irdsymbol.cpp/h. * Added #if IN_DMD versioning around DMD backend specific code in the D1 frontend, D2 is currently broken. * All part of a greater cleanup scheme. Tomas Lindquist Olsen 2009-03-26 20:45:53 +01:00
  • 367b8da8f4 Moved IRTargetScopeS from IRState into IrFunction, fixes #240 . Tomas Lindquist Olsen 2009-03-26 18:46:21 +01:00
  • 91698fd0a5 Remove a duplicate minitest Frits van Bommel 2009-03-25 13:46:49 +01:00
  • 31b46683e8 Fix to synchronized function storage class when getting the classinfo via dotExp. Christian Kamm 2009-03-25 08:13:01 +01:00
  • c189b011b5 Automated merge with http://hg.dsource.org/projects/ldc Christian Kamm 2009-03-24 21:18:29 +01:00
  • 671c7791e3 Reorganize EnclosingHandlers to require less changes to the frontend and allow us to implement the synchronized storage class for functions. Christian Kamm 2009-03-24 21:18:18 +01:00
  • 0f34ef81cf merge Tomas Lindquist Olsen 2009-03-24 18:22:47 +01:00
  • 187e3c926e Fixed error when pkg-config couldn't find libconfig, allows user to set flags manually. Tomas Lindquist Olsen 2009-03-24 18:22:29 +01:00
  • 479b97ca87 Update DtoConstFP() to be correct after LLVM r67562, which changed the way the APFloat constructor expects its i80 APInts to be formatted. (They're now actually consistent with the x87 format) Frits van Bommel 2009-03-24 15:24:59 +01:00
  • a0d93e699a Automated merge with http://hg.dsource.org/projects/ldc Christian Kamm 2009-03-24 14:34:16 +01:00
  • eb1deec50d Fix #239. Christian Kamm 2009-03-24 14:33:57 +01:00
  • 143e95680f Remove struct padding which was making this test fail on 64-bit systems. Frits van Bommel 2009-03-24 03:14:22 +01:00
  • 058998f1ad Update comments now that LLVM PR3861 has been fixed. However, since conditionally removing the workaround makes the ABI dependent on LLVM version, I reconsidered that. (The same revision of LDC compiling for the same target should probably produce code that follows the same ABI, right?) Frits van Bommel 2009-03-24 02:46:57 +01:00
  • 3ac45285fc Cleanup DMD 1.041 merge. Tomas Lindquist Olsen 2009-03-23 20:26:33 +01:00
  • 372b40dd94 Fix tuple declarations in aggregates. Christian Kamm 2009-03-23 14:47:51 +01:00
  • 2dcc7be873 Workaround for LLVM PR 3861 (http://llvm.org/PR3861). (LLVM abort()s in codegen if the second integer in a return value is <= i8 on x86/x86-64) Frits van Bommel 2009-03-23 01:01:55 +01:00
  • ef62f7965c Bring FrameInfo definition up to date with recent Tango developments. Thanks fawzi! Christian Kamm 2009-03-22 14:51:03 +01:00
  • 490549e65c Add dmd-style configuration file for rebuild usage. See #236 and thanks to ccuter for the patch! Christian Kamm 2009-03-21 09:47:48 +01:00