summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [WinEH] Update CoreCLR EH state numberingJoseph Tremoulet2016-01-044-183/+731
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Fix the CLR state numbering to generate correct tables, and update the lit test to verify them. The CLR numbering assigns one state number to each catchpad and cleanuppad. It also computes two tree-like relations over states: 1) Each state has a "HandlerParentState", which is the state of the next outer handler enclosing this state's handler (same as nearest ancestor per the ParentPad linkage on EH pads, but skipping over catchswitches). 2) Each state has a "TryParentState", which: a) for a catchpad that's not the last handler on its catchswitch, is the state of the next catchpad on that catchswitch. b) for all other pads, is the state of the pad whose try region is the next outer try region enclosing this state's try region. The "try regions are not present as such in the IR, but will be inferred based on the placement of invokes and pads which reach each other by exceptional exits. Catchswitches do not get their own states, but each gets mapped to the state of its first catchpad. Table generation requires each state's "unwind dest" state to have a lower state number than the given state. Since HandlerParentState can be computed as a function of a pad's ParentPad, and TryParentState can be computed as a function of its unwind dest and the TryParentStates of its children, the CLR state numbering algorithm first computes HandlerParentState in a top-down pass, then computes TryParentState in a bottom-up pass. Also reword some comments/names in the CLR EH table generation to make the distinction between the different kinds of "parent" clear. Reviewers: rnk, andrew.w.kaylor, majnemer Subscribers: AndyAyers, llvm-commits Differential Revision: http://reviews.llvm.org/D15325 llvm-svn: 256760
* clang-format: [JS] Support more ES6 default exports.Daniel Jasper2016-01-042-2/+4
| | | | llvm-svn: 256759
* clang-format: [JS] Support ES6 exports of array literals.Daniel Jasper2016-01-042-1/+10
| | | | | | | | | | | | | | | | Before: export default[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb]; export default[]; After: export default [ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ]; export default []; llvm-svn: 256758
* AMDGPU: Avoid assertions after SGPR spilling failedNicolai Haehnle2016-01-042-10/+11
| | | | | | | | | | | | | | | | | | | | Summary: The comment explains it: emitError does not necessarily exit the compilation process, and then using NoRegister leads to assertions later on. This generates incorrect code, of course, but the user should know to not use the result when an error has been emitted. It would be nice to have a test-case for this inside the LLVM repository, but llc exits on error. shader-db tests trigger the underlying issue at least on Tonga. Reviewers: arsenm, tstellarAMD, mareko Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15826 llvm-svn: 256757
* Rename the CERT namespace to cert, and update some checkers to use this ↵Aaron Ballman2016-01-049-10/+20
| | | | | | | | namespace consistently. Patch thanks to Haojian Wu! llvm-svn: 256756
* Remove XTIMEOUT from TestRegisters on linuxPavel Labath2016-01-041-1/+0
| | | | | | | I suspect the test was hanging due to the attach deadlock. This was fixed and the test has passed last 200 buildbot runs. llvm-svn: 256755
* [AVX512] add PSRAD and PSRAQ IntrinsicMichael Zuckerman2016-01-044-1/+251
| | | | | | Differential Revision: http://reviews.llvm.org/D15851 llvm-svn: 256754
* clang-format: [JS] Improve empty array literal detection.Daniel Jasper2016-01-042-3/+5
| | | | | | | | | | | | | | | Previously, the [] in the following example were recognized as an array subscript leading to weird indentation. Before: var aaaa = aaaaa || // wrap []; After: var aaaa = aaaaa || // wrap []; llvm-svn: 256753
* Remove XTIMEOUT from TestThreadStepOut on linuxPavel Labath2016-01-041-1/+0
| | | | | | The whole test is skipped already, so it's not running anyway. llvm-svn: 256752
* [AVX512] add PSRAW Intrinsic Michael Zuckerman2016-01-044-0/+147
| | | | | | Differential Revision: http://reviews.llvm.org/D15850 llvm-svn: 256751
* clang-format: Fix corner case in builder-type call formatting.Daniel Jasper2016-01-042-1/+5
| | | | | | | | | | | | | | Before: return aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa) .aaaa(aaaaaaaaaaaaaa); After: return aaaaaaaaaaaaaaaa .aaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa) .aaaa(aaaaaaaaaaaaaa); llvm-svn: 256750
* [MC] Fix file name in file headerJeroen Ketema2016-01-041-1/+1
| | | | llvm-svn: 256749
* Remove XTIMEOUT from TestHelloWorld on linuxPavel Labath2016-01-041-3/+0
| | | | | | | I think it was timing out because of the attach deadlocks, which are now fixed. In any case, it has passed last 200 buildbot runs, so I am enabling it. llvm-svn: 256748
* [AVX512] add PSRLV Intrinsic Michael Zuckerman2016-01-045-0/+173
| | | | | | Differential Revision: http://reviews.llvm.org/D15838 llvm-svn: 256747
* Remove XTIMEOUT from TestExitDuringStep on linuxPavel Labath2016-01-041-1/+0
| | | | | | | The test has passed last 200 buildbot runs, so it's hopefully working now. I'll watch buildbots for signs of trouble. llvm-svn: 256746
* Remove XTIMEOUT from TestCreateAfterAttach on linuxPavel Labath2016-01-041-1/+0
| | | | | | | I believe the cause for this was the attach lockup fixed in r246756. I will enable this tests and observe the buildbots for signs of problems. llvm-svn: 256744
* Convert test/CXX/lex/lex.literal/lex.string/p4.cpp back to DOS lineDimitry Andric2016-01-041-17/+17
| | | | | | | endings, since the file is supposed to have them, according to its comments. Also set its svn:eol-style property. Noticed by Nico Weber. llvm-svn: 256742
* Remove TestConnectRemote from XTIMEOUTsPavel Labath2016-01-041-1/+0
| | | | | | The test in question was removed in r249613. llvm-svn: 256741
* clang-format: Align long braced init lists even if they are nested inDaniel Jasper2016-01-042-4/+15
| | | | | | function calls. llvm-svn: 256740
* clang-format: Fix corner case for lambda assignments.Daniel Jasper2016-01-042-1/+3
| | | | | | | | | | | | Before: std::function<std::string(const std::string &)> my_lambda = []( const string &s) { return s; }; After: std::function<std::string(const std::string &)> my_lambda = [](const string &s) { return s; }; llvm-svn: 256739
* clang-format: Fix corner-case in ObjC method declaration formattingDaniel Jasper2016-01-043-9/+13
| | | | | | | | | | | | | | | | | | Before: - (void)shortf:(GTMFoo *)theFoo longKeyword:(NSRect)theRect longerKeyword:(float)theInterval error:(NSError **)theError { } After: - (void)shortf:(GTMFoo *)theFoo longKeyword:(NSRect)theRect longerKeyword:(float)theInterval error:(NSError **)theError { } llvm-svn: 256738
* clang-format: [Proto] Basic support for options with <> for repeated fields.Daniel Jasper2016-01-042-3/+10
| | | | llvm-svn: 256737
* clang-format: [Proto] Improve wrapping of message field attributes.Daniel Jasper2016-01-043-12/+30
| | | | | | | | | | | | | | | | | | | | | | | Before: optional AAA aaa = 1 [foo = { key: "a" // }, bar = { key: "a" // }]; After: optional AAA aaa = 1 [ foo = { key: "a" // }, bar = { key: "a" // } ]; llvm-svn: 256736
* Fix a horrible infloop in value tracking in the face of dead code.Chandler Carruth2016-01-041-1/+6
| | | | | | | | | | | | | | | Amazingly, we just never triggered this without: 1) Moving code around for MetadataTracking so that a certain *different* amount of inlining occurs in the per-TU compile step. 2) Then you LTO opt or clang with a bootstrap, and get inlining, loop opts, and GVN line up everything *just* right. I don't really know how we didn't hit this before. We really need to be fuzz testing stuff, it shouldn't be hard to trigger. I'm working on crafting a reduced nice test case, and will submit that when I have it, but I want to get LTO build bots going again. llvm-svn: 256735
* [TableGen] Fix a typo in r256733.Craig Topper2016-01-041-1/+1
| | | | llvm-svn: 256734
* [TableGen] Use some free space in Init to store the opcode for ↵Craig Topper2016-01-042-20/+23
| | | | | | UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC llvm-svn: 256733
* [TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects ↵Craig Topper2016-01-041-0/+3
| | | | | | in the support library will be deleted. llvm-svn: 256732
* [TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects ↵Craig Topper2016-01-041-0/+3
| | | | | | in the support library will be deleted. llvm-svn: 256731
* [X86] Make hasFP constant timeDavid Majnemer2016-01-046-25/+33
| | | | | | | | | | We need a frame pointer if there is a push/pop sequence after the prologue in order to unwind the stack. Scanning the instructions to figure out if this happened made hasFP not constant-time which is a violation of expectations. Let's compute this up-front and reuse that computation when we need it. llvm-svn: 256730
* Print stacktrace with UBSANEric Fiselier2016-01-041-0/+1
| | | | llvm-svn: 256729
* [LICM] Make instruction sinking funclet-awareDavid Majnemer2016-01-044-18/+147
| | | | | | | | | | | We had two bugs here: - We might try to sink into a catchswitch, causing verifier failures. - We will succeed in sinking into a cleanuppad but we didn't update the funclet operand bundle. This fixes PR26000. llvm-svn: 256728
* Remove unsafe "__as_link()" cast member function.Eric Fiselier2016-01-041-27/+53
| | | | | | | | | | | "__as_link()" can only be used safely on "__list_node" objects. This patch moves the "__as_link()" member function from "__list_node_base" to "__list_node" so it cannot be used incorrectly. Unsafe downcasts now use a non-member function so we don't defer the type-punned pointer. llvm-svn: 256727
* [TableGen] Change TGParser::SetValue to take an ArrayRef instead of ↵Craig Topper2016-01-042-15/+10
| | | | | | std::vector reference. Use None in many places where a default constructed vector was being passed. NFC llvm-svn: 256726
* [TableGen] Fix a bug that caused the wrong name for a record built from a ↵Craig Topper2016-01-042-7/+12
| | | | | | | | | | | | multiclass containing a defm called NAME that references another multiclass that contains a defm that uses NAME concatenated with other strings. It would end up doing the concatenations from the second multiclass twice. This occured because SetValue detected a self assignment when trying to set the value of NAME to a VarInit called NAME. NAME is special here and it will get cleaned up later. So add a flag to suppress the self assignment check for this case. Strangely the self-assignment error was returning false indicating it wasn't an error, but it wasn't doing the right thing. So this also changes it to report an error. This fixes the names of some AVX512 FMA instructions that showed this double expansion. llvm-svn: 256725
* Remove unused variableEd Maste2016-01-041-3/+1
| | | | | | Obtained from FreeBSD r292611 llvm-svn: 256724
* Strip trailing whitespaceEd Maste2016-01-044-197/+197
| | | | | | | | (There are changes in the copies of these four files in the FreeBSD base system, and I've changed these ones to reduce gratuitous diffs in future imports.) llvm-svn: 256723
* [PGO] Sync up template file with masterXinliang David Li2016-01-041-1/+1
| | | | llvm-svn: 256722
* llvm/include/llvm/ProfileData/InstrProfData.inc: Add c++-mode in the header.NAKAMURA Takumi2016-01-041-1/+1
| | | | llvm-svn: 256721
* Fix one file that I didn't convert properly in r256707.Dimitry Andric2016-01-031-1/+1
| | | | llvm-svn: 256720
* Use std::is_sorted and std::none_of instead of manual loops. NFCCraig Topper2016-01-034-25/+23
| | | | llvm-svn: 256719
* ArrayRef-ize a function. NFCCraig Topper2016-01-031-6/+4
| | | | llvm-svn: 256718
* Use std::is_sorted instead of a manual loop. NFCCraig Topper2016-01-031-5/+1
| | | | llvm-svn: 256717
* [PGO] Cleanup: remove reduncant calls in loweringXinliang David Li2016-01-031-2/+0
| | | | | | | | CoverageMapping data's section and alignment is already set during creation. No need to call it again during lowering. llvm-svn: 256716
* [PGO] Cleanup: Use covmap header definition in the template fileXinliang David Li2016-01-031-4/+4
| | | | | | | | | | | | | | This is one last remaining instrumentatation related structure that needs to be migrate to use the centralized template definition. With this change, instrumentation code related to coverage module header will be kept in sync with the coverage mapping reader. The remaining code which makes implicit assumption about covmap control structure layout in the the lowering pass will cleaned up in a different patch. This patch is not intended to have no functional change. llvm-svn: 256715
* [PGO] Cleanup: Use covmap header definition in the template fileXinliang David Li2016-01-032-15/+21
| | | | | | | | | | | | | | This is one last remaining instrumentatation related structure that needs to be migrate to use the centralized template definition. With this change, instrumentation code related to coverage module header will be kept in sync with the coverage mapping reader. The remaining code which makes implicit assumption about covmap control structure layout in the the lowering pass will cleaned up in a different patch. This patch is not intended to have no functional change. llvm-svn: 256714
* [X86][MMX] Regenerated vector insertion test.Simon Pilgrim2016-01-031-10/+24
| | | | | | Shows the true horror of what is going on.... llvm-svn: 256713
* [PGO] Code refactoring to use header struct def /NFCXinliang David Li2016-01-031-5/+10
| | | | llvm-svn: 256712
* [PGO] Sync up template file with masterXinliang David Li2016-01-031-0/+19
| | | | llvm-svn: 256711
* [PGO] Introduce coverage map header structure in PGO data template file /NFCXinliang David Li2016-01-032-1/+26
| | | | llvm-svn: 256710
* [SelectionDAG] Pulled out common code for CONCAT_VECTORS node creationSimon Pilgrim2016-01-031-39/+55
| | | | | | Pulled out the similar CONCAT_VECTORS creation code from the 2/3 operand getNode() calls (to handle all UNDEF and all BUILD_VECTOR cases). Added a similar handler to the general getNode() call as well. llvm-svn: 256709
OpenPOWER on IntegriCloud