summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [SystemZ] Add a structure to represent a selected comparisonRichard Sandiford2013-12-131-175/+180
| | | | | | | | | | | ...in an attempt to rein back the increasingly complex selection code. A knock-on effect is that ICmpType is exposed from the outset, which slightly simplifies adjustSubwordCmp. The code is no piece of art even after this change, but at least it should be slightly better. No behavioral change intended. llvm-svn: 197235
* [SystemZ] Make more use of LTGFRRichard Sandiford2013-12-132-0/+79
| | | | | | | | | | | | InstCombine turns (sext (trunc)) into (ashr (shl)), then converts any comparison of the ashr against zero into a comparison of the shl against zero. This makes sense in itself, but we want to undo it for z, since the sign- extension instruction has a CC-setting form. I've included tests for both the original and InstCombined variants, but the former already worked. The patch fixes the latter. llvm-svn: 197234
* [asan] add flag uar_noreserve to use noreserve mmap for fake stack. ↵Kostya Serebryany2013-12-136-3/+34
| | | | | | uar_noreserve=1 will save some memory but also negatively affect performance llvm-svn: 197233
* [sanitizer] Disable call wrapping when building for Go.Evgeniy Stepanov2013-12-132-1/+3
| | | | llvm-svn: 197232
* clang-check to ignore -no-integrated-as because certain drivers can't handle itArtyom Skrobov2013-12-132-5/+6
| | | | llvm-svn: 197229
* X86: When lowering shl_parts, don't emit shift amounts larger than the bit ↵Benjamin Kramer2013-12-132-2/+38
| | | | | | | | | | | | | width. While it's safe for the X86-specific shift nodes, dag combining will kill generic nodes. Insert an AND to make it safe, isel will nuke it as x86's shift instructions have an implicit AND. Fixes PR16108, which contains a contraption to hit this case in between constant folders. llvm-svn: 197228
* [msan] Wrap indirect calls from sanitizer rtl when running under DR.Evgeniy Stepanov2013-12-137-16/+85
| | | | llvm-svn: 197226
* Enabling thumb2 mode used to force support for armv6t2. Replace thisJoerg Sonnenberger2013-12-1382-93/+99
| | | | | | with a temporary assertion and adjust the various test cases. llvm-svn: 197224
* [mips] Add checks for alignment and maximum displacements for most of theMatheus Almeida2013-12-136-5/+729
| | | | | | | | | | | branch instructions for mips and micromips instruction sets thus avoiding the situation of generating branches to undesired locations if offsets cannot be encoded. This patch also checks if a fixup cannot be applied and returns a fatal error if that's the case. llvm-svn: 197223
* Move the input files for the unnecessary-module-map-parsing test to Inputs.Manuel Klimek2013-12-134-3/+3
| | | | | | | Needed to change rename.m to set the right include path so we don't import a broken module due to recursive module checking. llvm-svn: 197222
* Fixes an issue where a signum => name mapping function has multiple case ↵Sylvestre Ledru2013-12-131-0/+4
| | | | | | | | | statements that define to the same integral value on my Linux (Ubuntu 12.04, x86_64). It's for SIGIO and SIGPOLL. In the case that they are both defined the same. Patch by Todd Fiala (but typos are mine) llvm-svn: 197221
* Add ARM to release instructionsRenato Golin2013-12-131-0/+6
| | | | llvm-svn: 197220
* Move comment to its rightful placeRenato Golin2013-12-131-5/+5
| | | | llvm-svn: 197219
* [msan] Add a check for recursive __msan_init.Evgeniy Stepanov2013-12-131-0/+1
| | | | llvm-svn: 197218
* [PECOFF] Parse /export optional arguments.Rui Ueyama2013-12-134-12/+81
| | | | | | | /EXPORT command line option can take an ordinal, NONAME flag, and DATA flag. This patch is to parse these optional arguments. llvm-svn: 197217
* [inliner] Fix PR18206 by preventing inlining functions that call setjmpChandler Carruth2013-12-132-15/+58
| | | | | | | | | | | | | through an invoke instruction. The original patch for this was written by Mark Seaborn, but I've reworked his test case into the existing returns_twice test case and implemented the fix by the prior refactoring to actually run the cost analysis over invoke instructions, and then here fixing our detection of the returns_twice attribute to work for both calls and invokes. We never noticed because we never saw an invoke. =[ llvm-svn: 197216
* [inliner] Completely change (and fix) how the inline cost analysisChandler Carruth2013-12-132-37/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | handles terminator instructions. The inline cost analysis inheritted some pretty rough handling of terminator insts from the original cost analysis, and then made it much, much worse by factoring all of the important analyses into a separate instruction visitor. That instruction visitor never visited the terminator. This works fine for things like conditional branches, but for many other things we simply computed The Wrong Value. First example are unconditional branches, which should be free but were counted as full cost. This is most significant for conditional branches where the condition simplifies and folds during inlining. We paid a 1 instruction tax on every branch in a straight line specialized path. =[ Oh, we also claimed that the unreachable instruction had cost. But it gets worse. Let's consider invoke. We never applied the call penalty. We never accounted for the cost of the arguments. Nope. Worse still, we didn't handle the *correctness* constraints of not inlining recursive invokes, or exception throwing returns_twice functions. Oops. See PR18206. Sadly, PR18206 requires yet another fix, but this refactoring is at least a huge step in that direction. llvm-svn: 197215
* Run clang-format on the new files.Rui Ueyama2013-12-132-22/+25
| | | | | | I should have run it before submitting but forgot to do that. Doing it now... llvm-svn: 197214
* [PECOFF] Align .edata fields on natural boundaries.Rui Ueyama2013-12-133-13/+16
| | | | | | | | The only data in .edata whose length varies is the string. This patch moves all the strings to the end of the section, so that 16-bit or 32-bit integers are aligned on correct boundaries. llvm-svn: 197213
* [PECOFF] Create .edata section for the DLL export table.Rui Ueyama2013-12-137-0/+272
| | | | | | | | | | | | | | | | This is the first patch to emit data for the DLL export table. The DLL export table is the data used by the Windows loader to find the address of exported function from DLL. With this patch, LLD is able to emit a valid DLL export table which the Windows loader can interpret and load. The data structure of the DLL export table is described in the Microsoft PE/COFF Specification, section 5.3. DLL support is not complete yet; the linker needs to emit an import library for a DLL, otherwise the linker cannot link against the DLL. We also do not support export-only-by-ordinal yet. llvm-svn: 197212
* Revert "DebugInfo: Move type units into the debug_types section with ↵David Blaikie2013-12-1310-98/+33
| | | | | | | | appropriate comdat grouping and type unit headers" This reverts commit r197210. llvm-svn: 197211
* DebugInfo: Move type units into the debug_types section with appropriate ↵David Blaikie2013-12-1310-33/+98
| | | | | | | | | | | | | | | | | | comdat grouping and type unit headers This commit does not complete the type units feature - there are issues around fission support (skeletal type units, pubtypes/pubnames) and hashing of some types including those containing references to types in other type units. Originally committed as r197073 and reverted in r197079. Recommitted as r197197 to reproduce the failure and reverted as r197199 Turns out there was unstable ordering in the type unit dumping code. Fixed by using MapVector in DWARFContext to store the debug_types comdat sections. llvm-svn: 197210
* Refine 'objc_protocol_requires_explicit_implementation' attribute to better ↵Ted Kremenek2013-12-132-3/+50
| | | | | | handle indirect protocols. llvm-svn: 197209
* Make 'CheckProtocolMethodDefs' a static function.Ted Kremenek2013-12-132-28/+21
| | | | llvm-svn: 197208
* Change 'method X in protocol not implemented' warning to include the name of ↵Ted Kremenek2013-12-1310-32/+32
| | | | | | | | | the protocol. This removes an extra "note:", which wasn't really all that more useful and overall reduces the diagnostic spew for this case. llvm-svn: 197207
* Make 'WarnUndefinedMethod' a static function.Ted Kremenek2013-12-132-11/+10
| | | | llvm-svn: 197206
* Change stack probing code for MingW.Kai Nacke2013-12-133-15/+13
| | | | | | | | | Since gcc 4.6 the compiler uses ___chkstk_ms which has the same semantics as the MS CRT function __chkstk. This simplifies the prologue generation a bit. Reviewed by Rafael Espíndola. llvm-svn: 197205
* Object/COFF: ExportAddressTableEntry is a union of two RVAs.Rui Ueyama2013-12-131-1/+1
| | | | | | | The previous definition was wrong. See Microsoft PE/COFF specification section 5.3.2. llvm-svn: 197204
* [objc] If we don't know for sure what the designated initializers of the ↵Argyrios Kyrtzidis2013-12-133-1/+26
| | | | | | | | | superclass are, assume that a [super init..] inside a designated initializer also refers to a designated one and do not warn. llvm-svn: 197202
* [PECOFF] Rename lld::coff -> lld::pecoff.Rui Ueyama2013-12-1310-30/+25
| | | | | | We had lld::coff and lld::pecoff namespaces for no reason. Unify them. llvm-svn: 197201
* Fixed the size of the malloc buffer to match the size of the string that is ↵Greg Clayton2013-12-131-2/+3
| | | | | | memcpy'ed so we don't crash in a fiery ball of death when running the test suite on darwin. llvm-svn: 197200
* Revert "DebugInfo: Move type units into the debug_types section with ↵David Blaikie2013-12-138-93/+29
| | | | | | | | appropriate comdat grouping and type unit headers" This reverts commit r197197. llvm-svn: 197199
* llvm-cov: Added -b option for branch probabilities.Yuchen Wu2013-12-136-37/+355
| | | | | | | | | | | This option tells llvm-cov to print out branch probabilities when a basic block contains multiple branches. It also prints out some function summary info including the number of times the function enters, the percent of time it returns, and how many blocks were executed. Also updated tests. llvm-svn: 197198
* DebugInfo: Move type units into the debug_types section with appropriate ↵David Blaikie2013-12-138-29/+93
| | | | | | | | | | | | | | | | | | | comdat grouping and type unit headers This commit does not complete the type units feature - there are issues around fission support (skeletal type units, pubtypes/pubnames) and hashing of some types including those containing references to types in other type units. Originally committed as r197073 and reverted in r197079. This commit originally got jumbled up with another build-breaking commit and I can't find the failures I thought this caused anymore. Recommitting to hopefully get some clean buildbot results to work from. I have a sneaking suspicion there's unstable output in the comdat group output of MCStreamer... llvm-svn: 197197
* [-cxx-abi microsoft] Remove trailing spaces from the manglerDavid Majnemer2013-12-131-16/+16
| | | | | | No functional change, just a tidying up. llvm-svn: 197196
* AST: Update URL for Itanium ABI specDavid Majnemer2013-12-131-1/+1
| | | | | | | | The old URL hasn't worked for quite some time. While we are here, also change the link so that it will send us straight to the mangling portion of the ABI doc. llvm-svn: 197195
* Move C++ destructor emission into CGCXXABIReid Kleckner2013-12-134-20/+56
| | | | | | | No functionality change. Only Itanium C++ destructors have implicit VTT parameters. llvm-svn: 197194
* [-cxx-abi microsoft] Add commentary for mangleStaticGuardVariableDavid Majnemer2013-12-131-0/+9
| | | | | | | We will need to do some work here if we want to play nice with MSVC2013. Add a TODO indicating what changed and why this matters. llvm-svn: 197193
* Revert "[-cxx-abi microsoft] Mangle reference temporaries"David Majnemer2013-12-132-10/+4
| | | | | | | | | This reverts commit r197184. Richard Smith brings up some good points, a proper implementation will require us to mangle unnameable entities compatibly with MSVC. llvm-svn: 197192
* Fix to only update the offset for concrete registers (ones that don't have ↵Greg Clayton2013-12-131-1/+1
| | | | | | 'slice' or 'composite' key/value pairs). llvm-svn: 197191
* Add new Queue, QueueItem, Queuelist, SBQueue, SBQueueItem classes to representJason Molenda2013-12-1330-3/+1533
| | | | | | | | | libdispatch aka Grand Central Dispatch (GCD) queues. Still fleshing out the documentation and testing of these but the overall API is settling down so it's a good time to check it in. <rdar://problem/15600370> llvm-svn: 197190
* Remove getVTT* in favor of getStructorImplicitParameter*Reid Kleckner2013-12-132-14/+4
| | | | | | | No functionality change. The only remaining uses were in ItaniumCXXABI, which knows the implicit parameter is a VTT. llvm-svn: 197189
* Remove stuff from debugserver Xcode project that didn't belong.Greg Clayton2013-12-121-13/+0
| | | | llvm-svn: 197188
* Enhance "auto synthesis will not synthesize property in protocol" to include ↵Ted Kremenek2013-12-125-8/+10
| | | | | | | | property and protocol name. Implements <rdar://problem/15617839>. llvm-svn: 197187
* [ms-abi] Fixing bitfields sema arror for ms-modeWarren Hunt2013-12-121-1/+2
| | | | | | | | The check for bitfields that are longer than their base type needed to be checked in microsoft mode (cl.exe does not support the C++ extnetion for bitfields longer than their type). llvm-svn: 197186
* PR18229: Fix typo in assert condition.Richard Smith2013-12-121-1/+1
| | | | llvm-svn: 197185
* [-cxx-abi microsoft] Mangle reference temporariesDavid Majnemer2013-12-122-4/+10
| | | | | | | They are mangled the same as normal references, nothing special is going on here. llvm-svn: 197184
* [ms-abi] Refactoring Non-virtual base layout in record layoutWarren Hunt2013-12-123-600/+611
| | | | | | | | | This refactor addresses bugzilla bug 18167 and simplifies the code at the same time. Also I add a test case for the bug. Also I make a non-functional change to the basic layout lit tests to make them more reliable (using CHECK-NEXT instead of CHECK). llvm-svn: 197183
* <rdar://problem/15639995>Han Ming Ong2013-12-121-4/+0
| | | | | | debugserver's launch info was cleared unnecessarily. It has important user ID set. Reviewed by Greg Clayton. llvm-svn: 197182
* Replace use of Triple::getEnvironmentName with the simplerJoerg Sonnenberger2013-12-121-4/+9
| | | | | | Triple::getEnvironment. llvm-svn: 197181
OpenPOWER on IntegriCloud