- Oct 05, 2013
-
-
Craig Topper authored
llvm-svn: 192040
-
Craig Topper authored
llvm-svn: 192039
-
Craig Topper authored
llvm-svn: 192037
-
- Oct 03, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 191889
-
Craig Topper authored
llvm-svn: 191880
-
Craig Topper authored
llvm-svn: 191877
-
Craig Topper authored
llvm-svn: 191874
-
Craig Topper authored
llvm-svn: 191871
-
- Oct 02, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 191818
-
Elena Demikhovsky authored
otherwise encoding fails after the last change in X86MCCodeEmitter.cpp. llvm-svn: 191812
-
- Oct 01, 2013
-
-
Rafael Espindola authored
Patch by Alp Toker. llvm-svn: 191757
-
Elena Demikhovsky authored
llvm-svn: 191733
-
Craig Topper authored
llvm-svn: 191732
-
Craig Topper authored
llvm-svn: 191731
-
Craig Topper authored
llvm-svn: 191728
-
Preston Gurd authored
llvm-svn: 191715
-
Preston Gurd authored
on ADD16rr opcodes, if src1 != src, since that would cause convertToThreeAddress to try to create a virtual register. This is not permitted after register allocation, which is when the X86FixupLEAs pass runs. This patch fixes PR16785. llvm-svn: 191711
-
- Sep 30, 2013
-
-
Craig Topper authored
Add VEX_LIG to scalar FMA4 instructions. Use VEX_LIG in some of the inheriting checks in disassembler table generator. Make use of VEX_L_W, VEX_L_W_XS, VEX_L_W_XD contexts. Don't let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from their non-L forms unless VEX_LIG is set. Let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from all of their non-L or non-W cases. Increase ranking on VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE so they get chosen over non-L/non-W forms. llvm-svn: 191649
-
- Sep 29, 2013
-
-
Craig Topper authored
llvm-svn: 191632
-
Craig Topper authored
llvm-svn: 191630
-
- Sep 28, 2013
-
-
Robert Wilhelm authored
llvm-svn: 191610
-
- Sep 27, 2013
-
-
Yunzhong Gao authored
Phabricator code review is located here: http://llvm-reviews.chandlerc.com/D1750 llvm-svn: 191539
-
Craig Topper authored
Put HasAVX512 predicate on some patterns to properly disable them when AVX512 isn't enabled. Currently it works simply because the SSE and AVX version of the same patterns are checked first in the DAG isel table. llvm-svn: 191490
-
Craig Topper authored
llvm-svn: 191489
-
Craig Topper authored
llvm-svn: 191488
-
Yunzhong Gao authored
Phabricator code review is located at: http://llvm-reviews.chandlerc.com/D1759 llvm-svn: 191481
-
- Sep 25, 2013
-
-
Andrew Trick authored
Ideally, the machinel model is added at the time the instructions are defined. But many instructions in X86InstrSSE.td still need a model. Without this workaround the scheduler asserts because x86 already has itinerary classes for these instructions, indicating they should be modeled by the scheduler. Since we use the new machine model for other instructions, it expects a new machine model for these too. llvm-svn: 191391
-
David Majnemer authored
llvm-svn: 191362
-
- Sep 24, 2013
-
-
Yunzhong Gao authored
Adding TBM feature to bdver2 processor; piledriver supports this instruction set according to the following document: http://developer.amd.com/wordpress/media/2012/10/New-Bulldozer-and-Piledriver-Instructions.pdf Phabricator code review is located here: http://llvm-reviews.chandlerc.com/D1692 llvm-svn: 191324
-
Bill Wendling authored
Make sure that the code that handles the constant addresses is run for the GEPs. This just refactors that code and then calls it for the GEPs that are collected during the iteration. <rdar://problem/12445434> llvm-svn: 191281
-
Bill Wendling authored
The recursive nature of the address selection code can cause the stack to explode if there is a long chain of GEPs. Convert the recursive bit into a iterative method to avoid this. <rdar://problem/12445434> llvm-svn: 191252
-
- Sep 22, 2013
-
-
Tim Northover authored
Previously, the DAGISel function WalkChainUsers was spotting that it had entered already-selected territory by whether a node was a MachineNode (amongst other things). Since it's fairly common practice to insert MachineNodes during ISelLowering, this was not the correct check. Looking around, it seems that other nodes get their NodeId set to -1 upon selection, so this makes sure the same thing happens to all MachineNodes and uses that characteristic to determine whether we should stop looking for a loop during selection. This should fix PR15840. llvm-svn: 191165
-
David Majnemer authored
Summary: LLVM would crash when trying to come up with a relocation type for assembly like: movabsq $V@TPOFF, %rax Instead, we say the relocation type is R_X86_64_TPOFF64. Fixes PR17274. Reviewers: dblaikie, nrieck, rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1717 llvm-svn: 191163
-
- Sep 21, 2013
-
-
Juergen Ributzka authored
This reverts commit r191130. llvm-svn: 191138
-
Craig Topper authored
llvm-svn: 191136
-
Juergen Ributzka authored
llvm-svn: 191133
-
Juergen Ributzka authored
In AVX 256bit vectors are valid vectors and therefore the Type Legalizer doesn't split the VSELECT and SETCC nodes. AVX only supports MIN/MAX on 128bit vectors and this fix enables vector splitting for this special case in the X86 DAG Combiner. This fix is related to PR16695, PR17002, and <rdar://problem/14594431>. llvm-svn: 191131
-
Juergen Ributzka authored
The Type Legalizer recognizes that VSELECT needs to be split, because the type is to wide for the given target. The same does not always apply to SETCC, because less space is required to encode the result of a comparison. As a result VSELECT is split and SETCC is unrolled into scalar comparisons. This commit fixes the issue by checking for VSELECT-SETCC patterns in the DAG Combiner. If a matching pattern is found, then the result mask of SETCC is promoted to the expected vector mask for the given target. This mask has usually te same size as the VSELECT return type (except for Intel KNL). Now the type legalizer will split both VSELECT and SETCC. This allows the following X86 DAG Combine code to sucessfully detect the MIN/MAX pattern. This fixes PR16695, PR17002, and <rdar://problem/14594431>. llvm-svn: 191130
-
- Sep 20, 2013
-
-
Craig Topper authored
llvm-svn: 191073
-
- Sep 19, 2013
-
-
Yi Jiang authored
llvm-svn: 191021
-