summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Drop prelink support.Rafael Espindola2015-11-1722-203/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The way prelink used to work was * The compiler decides if a given section only has relocations that are know to point to the same DSO. If so, it names it .data.rel.ro.local<something>. * The static linker puts all of these together. * The prelinker program assigns addresses to each library and resolves the local relocations. There are many problems with this: * It is incompatible with address space randomization. * The information passed by the compiler is redundant. The linker knows if a given relocation is in the same DSO or not. If could sort by that if so desired. * There are newer ways of speeding up DSO (gnu hash for example). * Even if we want to implement this again in the compiler, the previous implementation is pretty broken. It talks about relocations that are "resolved by the static linker". If they are resolved, there are none left for the prelinker. What one needs to track is if an expression will require only dynamic relocations that point to the same DSO. At this point it looks like the prelinker is an historical curiosity. For example, fedora has retired it because it failed to build for two releases (http://pkgs.fedoraproject.org/cgit/prelink.git/commit/?id=eb43100a8331d91c801ee3dcdb0a0bb9babfdc1f) This patch removes support for it. That is, it stops printing the ".local" sections. llvm-svn: 253280
* Assume lane masks are always preciseMatthias Braun2015-11-174-80/+26
| | | | | | | | | | | | | | | Allowing imprecise lane masks in case of more than 32 sub register lanes lead to some tricky corner cases, and I need another bugfix for another one. Instead I rather declare lane masks as precise and let tablegen abort if we do not have enough bits. This does not affect any in-tree target, even AMDGPU only needs 16 lanes at the moment. If the 32 lanes turn out to be a problem in the future, then we can easily change the LaneBitmask typedef to uint64_t. Differential Revision: http://reviews.llvm.org/D14557 llvm-svn: 253279
* Fix indentationDavid Blaikie2015-11-171-1/+1
| | | | llvm-svn: 253278
* dwarfdump: Use the index to find the right abbrev offset in DWP filesDavid Blaikie2015-11-1710-49/+171
| | | | llvm-svn: 253277
* [WebAssembly] Fix printing of global operandsDerek Schuff2015-11-172-4/+11
| | | | | | | | | | This was regressed in r252656 which wasn't quite NFC. Instead of using a custom instruction as before, use a pattern to select CONST_I32 for the global addrs. Differential Revision: http://reviews.llvm.org/D14587 llvm-svn: 253276
* [PRE] Preserve !invariant.load metadataPhilip Reames2015-11-172-0/+19
| | | | | | Spoted via inspection. Test case included. llvm-svn: 253275
* Implement P0007: Constant View: A proposal for a std::as_const helper ↵Marshall Clow2015-11-174-1/+77
| | | | | | function template. llvm-svn: 253274
* Python 3 - Skip a certain test for a particular (swig,python) combo.Zachary Turner2015-11-162-1/+10
| | | | | | | | | | | Current versions of SWIG have a bug with Python 3 that causes Python to assert when iterating over a generator. This patch skips the test for the right combination of Python version and SWIG version. I'm attempting to upstream a patch to SWIG to fix this in a subsequent as-of-yet unreleased version, but I don't know how long that will take. llvm-svn: 253273
* Re-Apply "Add a "not_in()" function you can apply to the list type arguments ↵Ying Chen2015-11-162-4/+19
| | | | | | | | | | | | | | | | | to expectedFailureAll ..." with fix Summary: - Re-Commit r253106 - Initialize self.debug_info in Base::setUp() - Fix argument order when calling check_list_or_lambda for compiler Reviewers: jingham Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14673 llvm-svn: 253272
* Fix compile error in test. Can't use `operator[]` for multimap.Marshall Clow2015-11-161-1/+1
| | | | llvm-svn: 253271
* Rename gnu2 to gnu.Rafael Espindola2015-11-162-5/+5
| | | | | | This is the second step in making ELF2 the default. llvm-svn: 253270
* Make FP_CONTRACT ON the default.Stephen Canon2015-11-166-15/+192
| | | | | | Differential Revision: D14200 llvm-svn: 253269
* [X86][SSE] Merged BLEND shuffle decode comments. NFC.Simon Pilgrim2015-11-161-48/+8
| | | | | | Now that we can recognise different vector sizes. llvm-svn: 253268
* Demote a single-use named function object to a lambdaDavid Blaikie2015-11-161-10/+5
| | | | llvm-svn: 253267
* [X86][SSE] Merged ALIGNR/SLLDQ/SRLDQ shuffle decode comments. NFC.Simon Pilgrim2015-11-161-30/+4
| | | | | | Now that we can recognise different vector sizes - will make future AVX512 additions easier. llvm-svn: 253266
* Add newlines to debug TRACE messages in kmp_taskdeps.cppJonathan Peyton2015-11-161-2/+2
| | | | llvm-svn: 253265
* Add missing KMP_NESTED_HOT_TEAMS guardsJonathan Peyton2015-11-161-0/+6
| | | | llvm-svn: 253264
* Add the ability to xfail or skip based on swig / python version.Zachary Turner2015-11-161-11/+54
| | | | llvm-svn: 253263
* Insert the SWIG version into LLDB's __init__.pyZachary Turner2015-11-161-5/+30
| | | | | | | The goal here is to allow us to add skip / xfail decorators based on SWIG version. llvm-svn: 253262
* Python3 - Fix some issues related to `PythonFile` class.Zachary Turner2015-11-162-0/+11
| | | | | | | | Python 3 has lots of new debug asserts, and some of these were firing on PythonFile. Specifically related to handling of invalid files. llvm-svn: 253261
* [X86][SSE] Merged SHUF/PERM shuffle decode comments. NFC.Simon Pilgrim2015-11-161-79/+14
| | | | | | Now that we can recognise different vector sizes - will make future AVX512 additions easier. llvm-svn: 253260
* Derive nacltools::Linker from GnuTool to get response file supportDerek Schuff2015-11-161-2/+2
| | | | | | | It could be derived from gnutools::Linker directly but this way makes it consistent with all the other toolchains around it. llvm-svn: 253259
* [X86][SSE] Merged UNPCK shuffle decode comments. NFC.Simon Pilgrim2015-11-161-193/+75
| | | | | | Now that we can recognise different vector sizes - will make future AVX512 additions easier. llvm-svn: 253258
* More tests for LWG#2156Marshall Clow2015-11-164-0/+64
| | | | llvm-svn: 253257
* use range-based for loop; NFCISanjay Patel2015-11-161-2/+2
| | | | llvm-svn: 253256
* Correctly handle type mismatches in the __weak copy/move-initializationJohn McCall2015-11-163-2/+66
| | | | | | | | peephole I added in r250916. rdar://23559789 llvm-svn: 253255
* Add isInteger() to APFloat.Stephen Canon2015-11-163-1/+27
| | | | | | | | Useful utility function; this wasn't too hard to do before, but also wasn't obviously discoverable. Make it explicit. Reviewed offline by Michael Gottesman. llvm-svn: 253254
* [PR25538]: Fix a failure caused by r253126.Michael Zolotukhin2015-11-161-2/+2
| | | | | | | | | | | | | | | | In r253126 we stopped to recompute LCSSA after loop unrolling in all cases, except the unrolling is full and at least one of the loop exits is outside the parent loop. In other cases the transformation should not break LCSSA, but it turned out, that we also call SimplifyLoop on the parent loop, which might break LCSSA by itself. This fix just triggers LCSSA recomputation in this case as well. I'm committing it without a test case for now, but I'll try to invent one. It's a bit tricky because in an isolated test LoopSimplify would be scheduled before LoopUnroll, and thus will change the test and hide the problem. llvm-svn: 253253
* [WebAssembly] Fix function return type printingDerek Schuff2015-11-164-29/+53
| | | | | | | | | | | Summary: Previously return type information for a function was derived from return dag nodes. But this didn't work for dags with != return node. So instead compute it directly from the LLVM function as is done for imports. Differential Revision: http://reviews.llvm.org/D14593 llvm-svn: 253251
* [WebAssembly] Reverse the order of operands for br_ifDerek Schuff2015-11-163-17/+17
| | | | | | | | | | | | Summary: This is to match the new version in the spec Reviewers: sunfish Subscribers: jfb, llvm-commits, dschuff Differential Revision: http://reviews.llvm.org/D14519 llvm-svn: 253249
* [IR] Manage TheNoneToken with a std::unique_ptrDavid Majnemer2015-11-163-4/+3
| | | | | | Hopefully, this will make the sanitizer build bots happy. llvm-svn: 253248
* Find available scratch register to use in function prologue and epilogue as ↵Kit Barton2015-11-166-35/+457
| | | | | | | part of shrink wrapping. Phabricator: http://reviews.llvm.org/D13955 llvm-svn: 253247
* Add a new clang-tidy checker that flags throw expressions whose thrown type ↵Aaron Ballman2015-11-167-0/+210
| | | | | | | | is not nothrow copy constructible. While the compiler is free to elide copy constructor calls in some cases, it is under no obligation to do so, which makes the code a portability concern as well as a security concern. This checker corresponds to the CERT secure coding rule: https://www.securecoding.cert.org/confluence/display/cplusplus/ERR60-CPP.+Exception+objects+must+be+nothrow+copy+constructible llvm-svn: 253246
* [WinEH] Don't let UnwindHelp alias the return addressReid Kleckner2015-11-163-6/+56
| | | | | | | | | | | On top of that, don't bother allocating and initializing UnwindHelp if we don't have any funclets. Currently we always use RBP as our frame pointer when funclets are present, so this change makes it impossible to come here without any fixed stack objects. Fixes PR25533. llvm-svn: 253245
* Use the subtarget reference that we already haveReid Kleckner2015-11-161-2/+1
| | | | llvm-svn: 253244
* When producing error messages for always_inline functions with theEric Christopher2015-11-162-2/+14
| | | | | | | | | | target attribute, don't include "negative" subtarget features in the list of required features. Builtins are positive by default so don't need this change, but we pull the default list of features from the command line and so need to make sure that we only include features that are turned on for code generation in our error. llvm-svn: 253242
* Add intermediate subtract instructions to reassociation worklist.Owen Anderson2015-11-169-26/+87
| | | | | | | | | | We sometimes create intermediate subtract instructions during reassociation. Adding these to the worklist to revisit exposes many additional reassociation opportunities. Patch by Aditya Nandakumar. llvm-svn: 253240
* [ELF2] Remove target specific code from GotPltSection.Igor Kudrin2015-11-163-9/+17
| | | | | | | | | | | The content of reserved entries of the .got.plt section is target specific. In particular, on x86_64 the zero entry holds the address of the .dynamic section, but on AArch64 the same info is stored in the zero entry of the .got section. Differential revision: http://reviews.llvm.org/D14703 llvm-svn: 253239
* [LoopStrengthReduce] Don't increment iterator past the end of the BBDavid Majnemer2015-11-162-1/+52
| | | | | | | | | | | We tried to move the insertion point beyond instructions like landingpad and cleanuppad. However, we *also* tried to move past catchpad. This is problematic because catchpad is also a terminator. This fixes PR25541. llvm-svn: 253238
* [mips] Disable code generation through FastISel for MIPS32R6.Vasileios Kalintiris2015-11-162-3/+30
| | | | | | | | | | Reviewers: dsanders Subscribers: llvm-commits, dsanders Differential Revision: http://reviews.llvm.org/D14708 llvm-svn: 253225
* [SimplifyLibCalls] Generalize a comment. This doesn't apply only to sqrt.Davide Italiano2015-11-161-2/+2
| | | | llvm-svn: 253224
* LWG#2156 loosened the requirements on unordered containers 'rehash' calls. ↵Marshall Clow2015-11-165-1/+49
| | | | | | Add tests to make sure we meet these requirements. Since we met the stricter ones, no code change needed to meet the looser ones. llvm-svn: 253223
* [ARM] Prevent use of a value pointed by end() iterator when placing a jump tablePetr Pavlu2015-11-161-0/+2
| | | | | | | | | | | | | | Function ARMConstantIslands::doInitialJumpTablePlacement() iterates over all basic blocks in a machine function. It calls `MI = MBB.getLastNonDebugInstr()` to get the last instruction in each block and then uses MI->getOpcode() to decide what to do. If getLastNonDebugInstr() returns MBB.end() (for example, when the block does not contain any instructions) then calling getOpcode() on this value is incorrect. Avoid this problem by checking the result of getLastNonDebugInstr(). Differential Revision: http://reviews.llvm.org/D14694 llvm-svn: 253222
* [ARM,AArch64] Store source location of asm constant pool entriesOliver Stannard2015-11-1610-18/+34
| | | | | | | | | | Storing the source location of the expression that created a constant pool entry allows us to emit better error messages if we later discover that the expression cannot be represented by a relocation. Differential Revision: http://reviews.llvm.org/D14646 llvm-svn: 253220
* [ARM,AArch64] Store source location for values in assembly filesOliver Stannard2015-11-166-4/+14
| | | | | | | | | | | The MCValue class can store a SMLoc to allow better error messages to be emitted if an error is detected after parsing. The ARM and AArch64 assembly parsers were not setting this, so error messages did not have source information. Differential Revision: http://reviews.llvm.org/D14645 llvm-svn: 253219
* [WebAssembly] Prototype passes for register coloring and register stackifying.Dan Gohman2015-11-165-0/+341
| | | | | | These passes are not yet enabled by default. llvm-svn: 253217
* tsan: replace macro check with constant checkDmitry Vyukov2015-11-161-7/+7
| | | | | | As per comments in 252892 commit. llvm-svn: 253216
* Implement P0013R1: Logical Operator Type Traits. Make a hidden ↵Marshall Clow2015-11-165-143/+370
| | | | | | implementation (__and_, __or_, and __not_) so that we can use them elsewhere in non-C++17 code - for example, in the LFTS llvm-svn: 253215
* [mips] Do not add arch name in the compiler-rt's components.Vasileios Kalintiris2015-11-162-3/+2
| | | | | | | Instead, use the constant "mips" since the libraries are already placed under the multilib's OS suffix. llvm-svn: 253214
* [Myriad]: pass the 'std=' option to moviCompileDouglas Katzman2015-11-162-1/+5
| | | | llvm-svn: 253213
OpenPOWER on IntegriCloud