- Jan 04, 2016
-
-
Haicheng Wu authored
llvm-svn: 256767
-
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
-
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
-
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
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D15851 llvm-svn: 256754
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D15850 llvm-svn: 256751
-
Jeroen Ketema authored
llvm-svn: 256749
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D15838 llvm-svn: 256747
-
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
-
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
-
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
-
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
-
Craig Topper authored
[TableGen] Fix a bug that caused the wrong name for a record built from a 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
-
NAKAMURA Takumi authored
llvm-svn: 256721
-
- Jan 03, 2016
-
-
Dimitry Andric authored
llvm-svn: 256720
-
Craig Topper authored
llvm-svn: 256719
-
Xinliang David Li authored
CoverageMapping data's section and alignment is already set during creation. No need to call it again during lowering. llvm-svn: 256716
-
Xinliang David Li authored
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
-
Simon Pilgrim authored
Shows the true horror of what is going on.... llvm-svn: 256713
-
Xinliang David Li authored
llvm-svn: 256712
-
Xinliang David Li authored
llvm-svn: 256710
-
Simon Pilgrim authored
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
-
Simon Pilgrim authored
Many of these could be much better if we just lowered them all as shuffles - especially for the 256-bit vectors. llvm-svn: 256708
-
Dimitry Andric authored
Summary: There are a number of files in the tree which have been accidentally checked in with DOS line endings. Convert these to native line endings. There are also a few files which have DOS line endings on purpose, and I have set the svn:eol-style property to 'CRLF' on those. Reviewers: joerg, aaron.ballman Subscribers: aaron.ballman, sanjoy, dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D15848 llvm-svn: 256707
-
Simon Pilgrim authored
As mentioned on D14261, an upcoming patch will improve combines of insertps instructions. llvm-svn: 256706
-
Simon Pilgrim authored
This is mainly test cases for improvements to insertps matching, but pre-SSE41 shuffles could be improved as well llvm-svn: 256705
-
Craig Topper authored
[TableGen] Simplify some code slightly. No need to check if the arrays are empty before printing. The loop can be made to print the same thing if the loop is empty. NFC llvm-svn: 256703
-
Craig Topper authored
llvm-svn: 256702
-
Craig Topper authored
llvm-svn: 256701
-
Craig Topper authored
llvm-svn: 256700
-
Craig Topper authored
[TableGen] Replace a logically negated xor of bools with just an equality comparison for readability. NFC llvm-svn: 256699
-
Craig Topper authored
llvm-svn: 256698
-
Craig Topper authored
[TableGen] Fix a bug introduced in r256627. If the switch was not emitted we still emitted a closing curly brace. llvm-svn: 256697
-
Craig Topper authored
llvm-svn: 256696
-