- Jan 04, 2016
-
-
Haicheng Wu authored
llvm-svn: 256767
-
Davide Italiano authored
llvm-svn: 256766
-
Geoff Berry authored
Summary: Add some AArch64 dag combines to optimize some simple TBZ/TBNZ cases: (tbz (and x, m), b) -> (tbz x, b) (tbz (shl x, c), b) -> (tbz x, b-c) (tbz (shr x, c), b) -> (tbz x, b+c) (tbz (xor x, -1), b) -> (tbnz x, b) Reviewers: jmolloy, mcrosier, t.p.northover Subscribers: aemerson, rengolin, llvm-commits Differential Revision: http://reviews.llvm.org/D15702 llvm-svn: 256765
-
Paul Robinson authored
llvm-svn: 256764
-
David Majnemer authored
Inserting after a catchswitch results in verifier errors, bail out on promotion if a catchswitch is a loop exit. llvm-svn: 256763
-
Paul Robinson authored
Differential Revision: http://reviews.llvm.org/D15704 llvm-svn: 256762
-
Nick Lewycky authored
llvm-svn: 256761
-
Joseph Tremoulet authored
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
-
Daniel Jasper authored
llvm-svn: 256759
-
Daniel Jasper authored
Before: export default[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb]; export default[]; After: export default [ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ]; export default []; llvm-svn: 256758
-
Nicolai Haehnle authored
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
-
Aaron Ballman authored
Patch thanks to Haojian Wu! llvm-svn: 256756
-
Pavel Labath authored
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
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D15851 llvm-svn: 256754
-
Daniel Jasper authored
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
-
Pavel Labath authored
The whole test is skipped already, so it's not running anyway. llvm-svn: 256752
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D15850 llvm-svn: 256751
-
Daniel Jasper authored
Before: return aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa) .aaaa(aaaaaaaaaaaaaa); After: return aaaaaaaaaaaaaaaa .aaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa) .aaaa(aaaaaaaaaaaaaa); llvm-svn: 256750
-
Jeroen Ketema authored
llvm-svn: 256749
-
Pavel Labath authored
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
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D15838 llvm-svn: 256747
-
Pavel Labath authored
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
-
Pavel Labath authored
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
-
Dimitry Andric authored
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
-
Pavel Labath authored
The test in question was removed in r249613. llvm-svn: 256741
-
Daniel Jasper authored
function calls. llvm-svn: 256740
-
Daniel Jasper authored
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
-
Daniel Jasper authored
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
-
Daniel Jasper authored
llvm-svn: 256737
-
Daniel Jasper authored
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
-
Chandler Carruth authored
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
-
Craig Topper authored
llvm-svn: 256734
-
Craig Topper authored
[TableGen] Use some free space in Init to store the opcode for UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC llvm-svn: 256733
-
Craig Topper authored
[TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects in the support library will be deleted. llvm-svn: 256732
-
Craig Topper authored
[TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects in the support library will be deleted. llvm-svn: 256731
-
David Majnemer authored
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
-
Eric Fiselier authored
llvm-svn: 256729
-
David Majnemer authored
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
-
Eric Fiselier authored
"__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
-
Craig Topper authored
[TableGen] Change TGParser::SetValue to take an ArrayRef instead of std::vector reference. Use None in many places where a default constructed vector was being passed. NFC llvm-svn: 256726
-