Commit Graph

  • c4c38715ef Updated default ldc2 configuration file. Robert Clipsham 2009-07-09 21:13:19 +01:00
  • 4fbcd9b9c4 A couple of ldc2 tweaks now druntime compiles. Robert Clipsham 2009-07-09 12:36:08 +01:00
  • b73e45940a Merged dmdfe 2.031. Robert Clipsham 2009-07-07 02:26:11 +01:00
  • e5b7c25597 Removed druntime from the repository. Updated .hgignore to ignore druntime. Robert Clipsham 2009-07-06 23:57:27 +01:00
  • 951e961f9e Merge. Robert Clipsham 2009-07-06 23:56:11 +01:00
  • 1812c5b00a Fixed some unmerged parts of the D2 frontend. Removed the automatic linker flags for D2 (temp). Renamed a runtime function for D2. Robert Clipsham 2009-07-06 23:54:02 +01:00
  • feaefc3314 Better error handling for CMake LLVM config file detection. Christian Kamm 2009-07-03 18:49:42 +02:00
  • 22b36384b0 Fix build for LLVM >= r74640 Benjamin Kramer 2009-07-03 17:24:35 +02:00
  • 151e266deb Yet another fix for finding llvm's config file. Christian Kamm 2009-06-30 22:07:50 +02:00
  • 81e0b81e10 LLVM_INSTDIR -> LLVM_INCLUDEDIR fix by d0k. Christian Kamm 2009-06-29 21:44:11 +02:00
  • 88f6e9e83a Initialize LLVM target and asmprinter for the native and extra targets. Christian Kamm 2009-06-26 21:02:23 +02:00
  • e0331c7b53 Make debug info work with newer LLVM. Christian Kamm 2009-06-26 21:00:12 +02:00
  • 8bbf6ab984 Treat ConditionalDeclarations correctly in DtoDeclarationExp. Christian Kamm 2009-06-26 17:18:36 +02:00
  • 8e8837737a Be a little less overzealous with arrays of void-initialized typedefs; initialize new VoidTD[][](2) and new VoidTD[][][](2, 3) (but not new VoidTD[2][3], which is a dynamic array of static arrays of void-initialized typedefs). Frits van Bommel 2009-06-24 18:01:02 +02:00
  • c6750b34b7 Don't initialize arrays of (arrays of...) void-initialized typedefs. Frits van Bommel 2009-06-24 17:14:50 +02:00
  • 5658d9bb38 Emit file and line info for 'Array operation ... not recognized' error. Christian Kamm 2009-06-22 19:31:25 +02:00
  • 265cbea170 Make == for associative arrays test for equality, not identity. Christian Kamm 2009-06-21 19:05:24 +02:00
  • 62dee01d35 Implement equality comparison for associative arrays. The semantics aren't in the spec, but DMD does a simple pointer comparison. Complaints about this go to http://d.puremagic.com/issues/show_bug.cgi?id=1429 :P. Frits van Bommel 2009-06-21 00:12:29 +02:00
  • c261c03752 Put scope-limited data on the stack instead of using 'new' and 'delete'. Frits van Bommel 2009-06-20 19:44:54 +02:00
  • d7b00783d3 Automated merge with http://hg.dsource.org/projects/ldc Christian Kamm 2009-06-20 19:12:04 +02:00
  • 42b3da8ac7 Move function codegen data from IrFunction to new FuncGen. Christian Kamm 2009-06-20 19:11:44 +02:00
  • 5ecdf1a70a Eliminate comparisons between GC allocations and constants. This removes some assert(this !is null)s when member functions get inlined. Frits van Bommel 2009-06-20 14:28:59 +02:00
  • 465f15eda0 Return void* from _d_allocclass so LLVM doesn't do weird things with it... This allows -instcombine followed by -gvn to do devirtualization, so add -gvn in strategic places in the default pass order. Frits van Bommel 2009-06-20 11:39:13 +02:00
  • 34fbdb6271 Automated merge with http://hg.dsource.org/projects/ldc Robert Clipsham 2009-06-18 15:44:18 +01:00
  • f13c5e82f5 Added a stripModifiers() function to remove shared|const|immutable storage classes in D2 (should eventually be moved to a dhelpers file rather than llvm helpers). Replaced a few occurances of STCinvariant with STCimmutable. Robert Clipsham 2009-06-18 15:44:04 +01:00
  • 7dbe9baa37 Made is and !is use the same numeric comparison as == and !=, fixes #328 Christian Kamm 2009-06-16 23:00:27 +02:00
  • 4158fb474a Add an llvm::OStream workalike class for use with Logger::cout(), with the crucial difference being special handling of llvm::Types so they get printed by name rather than printing their full representation (which can be positively *huge*). Frits van Bommel 2009-06-16 19:31:10 +02:00
  • 348192e7e7 Build fix for LLVM >= r73431 Benjamin Kramer 2009-06-16 15:37:40 +02:00
  • 0c1b6e27d9 fix problem reported in ticket 327 - thanks d0k Kelly Wilson 2009-06-16 08:57:20 -06:00
  • 723cfef519 Another shot at fixing the issues with (constant) struct literals and their addresses. See DMD2682, #218, #324. Christian Kamm 2009-06-14 19:49:58 +02:00
  • 8357777440 Set the default RUNTIME_DIR to be side-by-side of the ldc source dir. Christian Kamm 2009-06-14 14:28:11 +02:00
  • e54d75354c Cannot take the address of a slice or struct literal as a constant expression. Christian Kamm 2009-06-14 12:27:51 +02:00
  • dbe949ede6 More DtoType -> DtoTypeNotVoid for getting the array element llvm type. Christian Kamm 2009-06-12 21:34:35 +02:00
  • 1563c14e7a The llvm element type of void arrays should be i8 and not void. Christian Kamm 2009-06-12 20:39:01 +02:00
  • 25ebb3dbcd Generate less dead code by deleting unreachable blocks at the end of functions (which would otherwise appear if a function ends with a return, for example). Frits van Bommel 2009-06-12 16:41:38 +02:00
  • 8bcc2d9b3f Increment the iterator before deleting redundant functions or globals in the StripExternals pass. Christian Kamm 2009-06-11 21:48:10 +02:00
  • bc7737a03b Add some passes that opt runs to the default pass list. Frits van Bommel 2009-06-11 16:57:45 +02:00
  • 1f7a2a7884 Teach stack promotion to walk the CFG when a potential reuse of an allocation is found to see if it can actually happen instead of just assuming it will. Frits van Bommel 2009-06-11 02:04:44 +02:00
  • bf89205f7d Look for configuration file in /etc and /etc/ldc too (absolute paths) except on Windows. Also disabled the $PREFIX/etc/ldc case for Windows, since the "/etc/ldc" part was #if'ed out anyway. Frits van Bommel 2009-06-09 12:19:52 +02:00
  • f8840f66c4 Move locating the configuration file into a separate function. Also look in PREFIX/etc/ldc. Fixes #322. Christian Kamm 2009-06-08 19:48:20 +02:00
  • 9ba306a42f Oops, I accidentally pushed r1486 before the last touches were committed. Frits van Bommel 2009-06-08 13:52:45 +02:00
  • 8044a67720 Apply changes from r1482 to D2 frontend too. Completely untested, but ldc2 compiles again. Frits van Bommel 2009-06-08 13:45:26 +02:00
  • b999f679a7 Teach -dgc2stack to promote GC allocations in simple loops to stack allocations too. (A "simple" loop is one where the allocation isn't used in a subsequent iteration) Frits van Bommel 2009-06-08 12:35:55 +02:00
  • f7ab031c7e Delete some code I forgot about in [1480]. Frits van Bommel 2009-06-07 23:00:53 +02:00
  • f76870f255 Print the path to the configuration file being used if -v is passed. Frits van Bommel 2009-06-07 17:20:55 +02:00
  • 96650855ed Add a pass to strip the bodies of available_externally functions so string literals and TypeInfos only referenced by them can be deleted by -globaldce. Frits van Bommel 2009-06-07 16:00:13 +02:00
  • 96fdcd6347 Run semantic3 on imported modules, and emit new symbols with available_externally linkage. This allows the inliner to inline functions from other modules while telling the code generator to ignore those functions (treat them as declarations) Still generates a few extra TypeInfos and strings... Disabled when generating debug info because I don't really understand it, and it doesn't like this. Frits van Bommel 2009-06-07 16:00:13 +02:00
  • b972dcb92d Add -memcpyopt to the optimization pass list. Frits van Bommel 2009-06-07 15:07:29 +02:00
  • f79e40a491 Use llvm.memset instead of _d_array_init_i1 and _d_array_init_i8. This exposes what's happening to LLVM, and memset is probably faster than the runtime functions we were using anyway. Frits van Bommel 2009-06-07 13:57:59 +02:00
  • 1958e17734 Rewrite StructLiteralExp::toElem to store individual fields instead of generating a constant to fill the entire struct with a single store. This is much more efficient at compile time (fixing #320) and vastly reduces the size of the emitted code. Since LLVM no longer needs to keep the data for all fields in "registers" until the store happens, it should also be more efficient at run time in cases where the fields aren't assigned with constants. Frits van Bommel 2009-06-06 20:16:13 +02:00
  • b4f8bd6e52 Fix #318 by making a list of all seen template instances in a module for singleobj compilation and then making sure they get emitted in their entirety. Christian Kamm 2009-06-06 09:47:32 +02:00
  • c6946d4072 Fix indentation, removing tabs. Frits van Bommel 2009-06-05 02:54:34 +02:00
  • 243a9bc4a6 There was another fix needed here for reading %%ldcbinarypath%% Kelly Wilson 2009-06-04 18:36:07 -06:00
  • 690ca32c0c Fix memory leak in configfile.cpp...probably the only one in ldc! Kelly Wilson 2009-06-04 16:46:05 -06:00
  • d21e61b8b8 merging Kelly Wilson 2009-06-04 16:06:35 -06:00
  • 7bf64922f5 Fix for finding ldc.conf file with mingw Kelly Wilson 2009-06-04 16:04:26 -06:00
  • 5edb7545f2 Move -tailcallelim to a place in the optimization sequence where it seems to be more useful. Frits van Bommel 2009-06-04 15:59:51 +02:00
  • 5a6e2f1c8f Emit nicer error messages when the user didn't set LLVM_REV and autodetection didn't find a suitable revision or when the LLVM revision in use is too old. Frits van Bommel 2009-06-03 16:09:48 +02:00
  • 6c3afda318 Remove \r\n newlines from bash script. Frits van Bommel 2009-06-03 15:26:58 +02:00
  • 1ca21d089c Remove premake.lua and update the readme. Frits van Bommel 2009-06-03 15:09:30 +02:00
  • e31957dcd8 Change the frontend generated assert(this) or assert(&this) in D2 to set the ThisExp::var field. Tomas Lindquist Olsen 2009-06-03 13:11:01 +02:00
  • 060d18b91e Fix a bug in DtoNestedInit and update an unrelated comment. Frits van Bommel 2009-06-03 12:32:35 +02:00
  • 062b6d93c4 Make sure typeinfo output are mutable types, this is a temporary workaround to get druntime genobj.d to compile until we figure out what typeinfos are actually needed here and there ... Tomas Lindquist Olsen 2009-06-03 04:12:28 +02:00
  • b218bfc828 Added missing initializer of (LDC introduced) Expression::cachedLvalue in D2 frontend. Tomas Lindquist Olsen 2009-06-03 03:49:24 +02:00
  • 092381577f Some minor changes to handling of variables referenced from nested functions in D2 . Tomas Lindquist Olsen 2009-06-03 03:04:47 +02:00
  • f6997cb604 D2: Tomas Lindquist Olsen 2009-06-03 02:28:48 +02:00
  • 2cd4d15be1 Merge a fix from the D1 frontend to the D2 frontend. Frits van Bommel 2009-06-02 20:28:53 +02:00
  • 0c6a40485d Fix a segfault in ldc2 (use of an uninitialized variable). Frits van Bommel 2009-06-02 19:54:02 +02:00
  • 59f5636391 * Fix some gcc warnings in the D2 frontend code. * Remove binaries from dmd2/ Frits van Bommel 2009-06-02 19:18:48 +02:00
  • 826b3a42c3 Merge. Robert Clipsham 2009-06-02 17:44:50 +01:00
  • c9ca799f88 Added druntime (this should be removed once it works). Robert Clipsham 2009-06-02 17:43:06 +01:00
  • cf5ad1a5b0 Remove some unnecessary #ifs. The D1 frontend has a Type::nextOf() which just returns next. Frits van Bommel 2009-06-02 18:41:10 +02:00
  • 435d3069f6 Automated merge with http://hg.dsource.org/projects/ldc Robert Clipsham 2009-06-02 17:12:37 +01:00
  • ba72e39d24 Add syscall to the x86-64 asm parser, and both syscall and sysret to the x86 one. Fixes #316. Frits van Bommel 2009-06-01 23:42:42 +02:00
  • fd037f35e9 Fix a type mismatch in ModuleInfo generation. Frits van Bommel 2009-06-01 23:17:47 +02:00
  • cf08cc2844 Automated merge with http://hg.dsource.org/projects/ldc Robert Clipsham 2009-06-01 19:02:20 +01:00
  • 24f426c1bc Removed unused files to allow for a pull. Robert Clipsham 2009-06-01 19:02:09 +01:00
  • 91ddf6140a More tweaks. Robert Clipsham 2009-06-01 18:58:21 +01:00
  • 0a8db2289d Remove redundant null-check in member functions of structs that don't have an invariant. Frits van Bommel 2009-06-01 01:28:18 +02:00
  • 19149bc542 change mingw32 versioning to version(Windows) Kelly Wilson 2009-05-31 11:20:26 -06:00
  • 23919b4de4 fix assembly code for mingw32 in minitests Kelly Wilson 2009-05-31 11:01:02 -06:00
  • 2fe8f2cd74 Improve ABI conformance on x86 by passing the sret parameter in EAX if there's no this. Frits van Bommel 2009-05-31 12:43:59 +02:00
  • 1e9ad13b12 Automated merge with http://hg.dsource.org/projects/ldc Frits van Bommel 2009-05-31 17:11:51 +02:00
  • 008d81afb0 Fix "garbage at end of line" errors on mingw...shouldn't affect linux/macosx Kelly Wilson 2009-05-31 09:10:33 -06:00
  • 06a0322478 Update patch for Tango 0.99.8 Frits van Bommel 2009-05-31 15:47:59 +02:00
  • 46cd6504fa Adjust some more code that was depending on the function and delegate calling conventions being equal. There's also an instance in tango.text.convert.Layout that should be adjusted: {{{ Index: tango/text/convert/Layout.d =================================================================== --- tango/text/convert/Layout.d (revision 4578) +++ tango/text/convert/Layout.d (working copy) -660,8 +660,12 @@ Frits van Bommel 2009-05-31 15:27:01 +02:00
  • 78aa98fdfb Error on invalid array cast. See DMD3041. Christian Kamm 2009-05-31 15:07:04 +02:00
  • a517adb426 Adjust runtime for recent ABI change on x86-64, since member functions are no longer equivalent to regular functions with this as their first argument. (They weren't anyway, but it happened to work as long as there was no sret parameter) Frits van Bommel 2009-05-31 14:27:01 +02:00
  • 3718bd23fb Add nest attribute to this parameters on x86-64. This is a free extra parameter register :). Frits van Bommel 2009-05-31 10:41:20 +02:00
  • c8b10643f9 Add some missing returns. Frits van Bommel 2009-05-30 23:48:22 +02:00
  • 2e6e578ea1 Fix test for mingw Kelly Wilson 2009-05-30 14:57:48 -06:00
  • 3eb4a4d389 merging Kelly Wilson 2009-05-30 14:36:00 -06:00
  • 71477fcb8c Forgot one windows underscore for asm output Kelly Wilson 2009-05-30 14:35:03 -06:00
  • c5be82c5ae LDC 2 compiles again. Robert Clipsham 2009-05-30 17:23:32 +01:00
  • da593c99dc Remove code duplication for vtable loads and improve instruction naming to make bitcode with virtual calls easier to read. Frits van Bommel 2009-05-30 13:04:49 +02:00
  • a05ed9a171 Fix #309: allow -of with multiple source files if -singleobj is given. Christian Kamm 2009-05-30 12:58:04 +02:00
  • 7815318f9b Automated merge with http://hg.dsource.org/projects/ldc Christian Kamm 2009-05-30 12:47:51 +02:00
  • 750260070a Define __C99FEATURES__ in lexer.c for Solaris. Fixes #313. Christian Kamm 2009-05-30 12:47:35 +02:00
  • e35b95f35e merging Kelly Wilson 2009-05-29 01:09:38 -06:00
  • 01c608f457 Fix - add Path.native for mingw support...thanks mp4/jaffa Kelly Wilson 2009-05-29 01:08:39 -06:00