summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [OPENMP] Consider global named register variables as threadprivate by default.Alexey Bataev2015-01-133-4/+10
| | | | | | Register are thread-local by default, so we have to consider them as threadprivate. llvm-svn: 225759
* ARM: prepare prefix parsing for improved AAELF supportSaleem Abdulrasool2015-01-131-5/+43
| | | | | | | | AAELF specifies a number of ELF specific relocation types which have custom prefixes for the symbol reference. Switch the parser to be more table driven with an idea of file formats for which they apply. NFC. llvm-svn: 225758
* [PM] Fold all three analysis managers into a single AnalysisManagerChandler Carruth2015-01-138-515/+219
| | | | | | | | | | | | | | | | | | | | | | | | | template. This consolidates three copies of nearly the same core logic. It adds "complexity" to the ModuleAnalysisManager in that it makes it possible to share a ModuleAnalysisManager across multiple modules... But it does so by deleting *all of the code*, so I'm OK with that. This will naturally make fixing bugs in this code much simpler, etc. The only down side here is that we have to use 'typename' and 'this->' in various places, and the implementation is lifted into the header. I'll take that for the code size reduction. The convenient names are still typedef-ed and used throughout so that users can largely ignore this aspect of the implementation. The follow-up change to this will do the exact same refactoring for the PassManagers. =D It turns out that the interesting different code is almost entirely in the adaptors. At the end, that should be essentially all that is left. llvm-svn: 225757
* Extend the self move warning to record types.Richard Trieu2015-01-135-86/+116
| | | | | | | Move the logic for checking self moves into SemaChecking and add that function to Sema since it is now used in multiple places. llvm-svn: 225756
* If we don't find a matching ) for a ( in an exception specification, keep ↵Richard Smith2015-01-132-9/+12
| | | | | | the tokens around so we can diagnose an error rather than silently discarding them. llvm-svn: 225755
* Disable a warning for self move since the test is checking for this behavior.Richard Trieu2015-01-131-0/+4
| | | | llvm-svn: 225754
* fix typo; NFCSanjay Patel2015-01-131-1/+1
| | | | llvm-svn: 225753
* Rename llvm.recoverframeallocation to llvm.framerecoverReid Kleckner2015-01-138-24/+24
| | | | | | | | This name is less descriptive, but it sort of puts things in the 'llvm.frame...' namespace, relating it to frameallocate and frameaddress. It also avoids using "allocate" and "allocation" together. llvm-svn: 225752
* PR22208: On FreeBSD systems, __STDC_MB_MIGHT_NEQ_WC__ is expected to be definedRichard Smith2015-01-132-0/+8
| | | | | | | | | | | even though every basic source character literal has the same numerical value as a narrow or wide character literal. It appears that the FreeBSD folks are trying to use this macro to mean something other than what the relevant standards say it means, but their usage is conforming, so put up with it. llvm-svn: 225751
* [PM] Fix another place where I was using an overly generic T&& for theChandler Carruth2015-01-131-1/+1
| | | | | | IR unit to directly use IRUnitT& for now. llvm-svn: 225750
* IR: Use unique_ptr, NFCDuncan P. N. Exon Smith2015-01-131-4/+3
| | | | | | Use `std::unique_ptr<>`, as suggested by David Blaikie. llvm-svn: 225749
* Don't run functionalities/tty under sudo / as root.Jason Molenda2015-01-131-0/+10
| | | | | | | | | | | | | | The terminal window will be opened under the ownership of the real userid and it won't be able to open the socket talking back to lldb -- the testsuite will hang here. The same thing probably should be done for lldb when run on a remote system over ssh. I added a line for that but commented it out for now because I haven't tested it. llvm-svn: 225748
* Phabricator calls it "subscriber" not "cc"Paul Robinson2015-01-131-1/+2
| | | | llvm-svn: 225747
* Add the llvm.frameallocate and llvm.recoverframeallocation intrinsicsReid Kleckner2015-01-1321-4/+303
| | | | | | | | | | | | | | | | | | | | | These intrinsics allow multiple functions to share a single stack allocation from one function's call frame. The function with the allocation may only perform one allocation, and it must be in the entry block. Functions accessing the allocation call llvm.recoverframeallocation with the function whose frame they are accessing and a frame pointer from an active call frame of that function. These intrinsics are very difficult to inline correctly, so the intention is that they be introduced rarely, or at least very late during EH preparation. Reviewers: echristo, andrew.w.kaylor Differential Revision: http://reviews.llvm.org/D6493 llvm-svn: 225746
* IR: Remove an invalid assertion when replacing resolved operandsDuncan P. N. Exon Smith2015-01-132-3/+32
| | | | | | | | | This adds back the testcase from r225738, and adds to it. Looks like we need both sides for now (the assertion was incorrect both ways, and although it seemed reasonable (when written correctly) it wasn't particularly important). llvm-svn: 225745
* Combine fcmp + select to fminnum / fmaxnum if no nans and legalMatt Arsenault2015-01-133-11/+86
| | | | | | | Also require unsafe FP math for no since there isn't a way to test for signed zeros. llvm-svn: 225744
* [PM] Re-clang-format much of this code as the code has changed some andChandler Carruth2015-01-134-25/+22
| | | | | | | | so has clang-format. Notably, this fixes a bunch of formatting in the CGSCC pass manager side of things that has been improved in clang-format recently. llvm-svn: 225743
* Revert "IR: Fix an inverted assertion when replacing resolved operands"Duncan P. N. Exon Smith2015-01-132-24/+1
| | | | | | | | This reverts commit r225738. Maybe the assertion is just plain wrong, but this version fails on WAY more bots. I'll make sure both ways work in a follow-up but I want to get bots green in the meantime. llvm-svn: 225742
* Simplify a test. No behavior change.Nico Weber2015-01-131-5/+3
| | | | | | | | | | Templates don't have key functions (cf computeKeyFunction() in RecordLayoutBuilder.cpp), so don't have something that looks like one. Also, instead of a vcall to force generation of the vtable, just construct the object. This is how the repro on PR5557 (what the test is for) worked too. llvm-svn: 225741
* Grammar and spelling.Eric Christopher2015-01-131-4/+4
| | | | llvm-svn: 225740
* Remove fragile regex from testGreg Fitzgerald2015-01-132-5/+5
| | | | | | Differential Revision: http://reviews.llvm.org/D6937 llvm-svn: 225739
* IR: Fix an inverted assertion when replacing resolved operandsDuncan P. N. Exon Smith2015-01-132-1/+24
| | | | | | | Add a unit test, since this bug was only exposed by clang tests. Thanks to Rafael for tracking this down! llvm-svn: 225738
* Release merge script: don't actually commit the mergeHans Wennborg2015-01-131-4/+6
| | | | | | | | Instead, just present the command for committing it. This way, the user can test the merge locally, resolve conflicts, etc. before committing, which seems much safer to me. llvm-svn: 225737
* Release tag script: add -revision optionHans Wennborg2015-01-131-7/+21
| | | | | | | It seems useful to be able to create the branch at a revision that looks good on the buildbots. llvm-svn: 225736
* Release tag script: add -dry-run flagHans Wennborg2015-01-131-6/+11
| | | | llvm-svn: 225735
* Debug Info: Move support for constants into DwarfExpression.Adrian Prantl2015-01-134-37/+65
| | | | | | | | | Move the declaration of DebugLocDwarfExpression into DwarfExpression.h because it needs to be accessed from AsmPrinterDwarf.cpp and DwarfDebug.cpp NFC. llvm-svn: 225734
* Fix XCode build on OSX - add OptionValueChar.cppOleksiy Vyalov2015-01-121-0/+6
| | | | | | http://reviews.llvm.org/D6941 llvm-svn: 225733
* IR: Split out writeMDTuple(), NFCDuncan P. N. Exon Smith2015-01-121-6/+24
| | | | | | Prepare for more subclasses of `UniquableMDNode` than `MDTuple`. llvm-svn: 225732
* Make DwarfExpression store the AsmPrinter instead of the TargetMachine.Adrian Prantl2015-01-125-17/+27
| | | | | | NFC. llvm-svn: 225731
* remove extra semicolonAdrian Prantl2015-01-121-1/+1
| | | | llvm-svn: 225730
* musttail: Only set the inreg flag for fastcall and vectorcallReid Kleckner2015-01-122-3/+30
| | | | | | | | | | Otherwise we'll attempt to forward ECX, EDX, and EAX for cdecl and stdcall thunks, leaving us with no scratch registers for indirect call targets. Fixes PR22052. llvm-svn: 225729
* R600/SI: Remove redundant setting expand on f64 vectorsMatt Arsenault2015-01-121-7/+0
| | | | | | | None of these are legal types already, so they default to Expand. llvm-svn: 225728
* IR: Unbreak the MSVC build after r225689Duncan P. N. Exon Smith2015-01-121-1/+3
| | | | llvm-svn: 225727
* Run clang-format on the parts of AsmPrinterDwarf where it improves theAdrian Prantl2015-01-121-12/+10
| | | | | | readability. llvm-svn: 225726
* Update test cases for new -fsanitize-recover= semantics.Alexey Samsonov2015-01-124-5/+5
| | | | llvm-svn: 225725
* Debug Info: Add a virtual destructor to DwarfExpression.Adrian Prantl2015-01-121-0/+1
| | | | | | Thanks Chandler for noticing! llvm-svn: 225724
* [PM] Sink the reference vs. value decision for IR units out of theChandler Carruth2015-01-124-43/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | templated interface. So far, every single IR unit I can come up with has address-identity. That is, when two units of IR are both active in LLVM, their addresses will be distinct of the IR is distinct. This is clearly true for Modules, Functions, BasicBlocks, and Instructions. It turns out that the only practical way to make the CGSCC stuff work the way we want is to make it true for SCCs as well. I expect this pattern to continue. When first designing the pass manager code, I kept this dimension of freedom in the type parameters, essentially allowing for a wrapper-type whose address did not form identity. But that really no longer makes sense and is making the code more complex or subtle for no gain. If we ever have an actual use case for this, we can figure out what makes sense then and there. It will be better because then we will have the actual example in hand. While the simplifications afforded in this patch are fairly small (mostly sinking the '&' out of many type parameters onto a few interfaces), it would have become much more pronounced with subsequent changes. I have a sequence of changes that will completely remove the code duplication that currently exists between all of the pass managers and analysis managers. =] Should make things much cleaner and avoid bug fixing N times for the N pass managers. llvm-svn: 225723
* IR: Remove incorrect comment, NFCDuncan P. N. Exon Smith2015-01-121-2/+0
| | | | llvm-svn: 225722
* IR: Fix unit test memory leak reported by ASanDuncan P. N. Exon Smith2015-01-121-0/+1
| | | | | | | | http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/603/steps/check-llvm%20asan/logs/stdio Thanks Alexey for pointing me to this! llvm-svn: 225721
* Untwine this expression. Thanks to David for noticing!Adrian Prantl2015-01-121-1/+1
| | | | llvm-svn: 225720
* Reimplement -fsanitize-recover family of flags.Alexey Samsonov2015-01-1214-86/+227
| | | | | | | | | | | | | | | | | | | | | | | | Introduce the following -fsanitize-recover flags: - -fsanitize-recover=<list>: Enable recovery for selected checks or group of checks. It is forbidden to explicitly list unrecoverable sanitizers here (that is, "address", "unreachable", "return"). - -fno-sanitize-recover=<list>: Disable recovery for selected checks or group of checks. - -f(no-)?sanitize-recover is now a synonym for -f(no-)?sanitize-recover=undefined,integer and will soon be deprecated. These flags are parsed left to right, and mask of "recoverable" sanitizer is updated accordingly, much like what we do for -fsanitize= flags. -fsanitize= and -fsanitize-recover= flag families are independent. CodeGen change: If there is a single UBSan handler function, responsible for implementing multiple checks, which have different recoverable setting, then we emit two handler calls instead of one: the first one for the set of "unrecoverable" checks, another one - for set of "recoverable" checks. If all checks implemented by a handler have the same recoverability setting, then the generated code will be the same. llvm-svn: 225719
* [X86][SSE] Minor regression fix for r225551Simon Pilgrim2015-01-121-1/+2
| | | | | | r225551 vector byte shuffle optimization caused an assertion as fully zeroable vectors can be produced under certain circumstances. This fix drops the assert and returns a zero vector where the assert would have failed. llvm-svn: 225718
* Debug Info: Implement DwarfUnit::addRegisterOpPiece() using DwarfExpression.Adrian Prantl2015-01-122-57/+4
| | | | | | NFC. llvm-svn: 225717
* Bitcode: Range-based for, NFCDuncan P. N. Exon Smith2015-01-121-2/+2
| | | | llvm-svn: 225716
* Bitcode: Add abbreviation for METADATA_NAMEDuncan P. N. Exon Smith2015-01-121-3/+12
| | | | llvm-svn: 225715
* Bitcode: Range-based for, NFCDuncan P. N. Exon Smith2015-01-121-7/+4
| | | | llvm-svn: 225714
* Bitcode: Range-based for, NFCDuncan P. N. Exon Smith2015-01-121-4/+4
| | | | llvm-svn: 225713
* Bitcode: Simplify emission of METADATA_BLOCKDuncan P. N. Exon Smith2015-01-123-36/+32
| | | | | | | | | | Refactor logic so that we know up-front whether to open a block and whether we need an MDString abbreviation. This is almost NFC, but will start emitting `MDString` abbreviations when the first record is not an `MDString`. llvm-svn: 225712
* AsmParser: Use subclass API instead of MDNode wrappers, NFCDuncan P. N. Exon Smith2015-01-121-4/+4
| | | | | | | | Use subclass API instead of the wrappers in `MDNode` in the assembly parser. This will make the code easier to follow once we have multiple subclasses. llvm-svn: 225711
* AsmParser: Factor duplicated code into ParseMDNode(), NFCDuncan P. N. Exon Smith2015-01-122-27/+24
| | | | llvm-svn: 225710
OpenPOWER on IntegriCloud