- Dec 30, 2011
-
-
Craig Topper authored
Separate the concept of having memory access in operand 4 from the concept of having the W bit set for XOP instructons. Removes ORing W-bits in the encoder and will similarly simplify the disassembler implementation. llvm-svn: 147366
-
Craig Topper authored
llvm-svn: 147365
-
Craig Topper authored
llvm-svn: 147364
-
Craig Topper authored
Change FMA4 memory forms to use memopv* instead of alignedloadv*. No need to force alignment on these instructions. Add a couple testcases for memory forms. llvm-svn: 147361
-
Craig Topper authored
Fix load size for FMA4 SS/SD instructions. They need to use f32 and f64 size, but with the special handling to be compatible with the intrinsic expecting a vector. Similar handling is already used elsewhere. llvm-svn: 147360
-
Hal Finkel authored
1. The ST*UX instructions that store and update the stack pointer did not set define/kill on R1. This became a problem when I activated post-RA scheduling (and had incorrectly adjusted the Frames-large test). 2. eliminateFrameIndex did not kill its scavenged temporary register, and this could cause the scavenger to exhaust all available registers (and its emergency spill slot) when there were a lot of CR values to spill. The 2010-02-12-saveCR test has been adjusted to check for this. llvm-svn: 147359
-
- Dec 29, 2011
-
-
Rafael Espindola authored
llvm-svn: 147356
-
Rafael Espindola authored
llvm-svn: 147354
-
Craig Topper authored
llvm-svn: 147353
-
Rafael Espindola authored
llvm-svn: 147352
-
Craig Topper authored
llvm-svn: 147351
-
Craig Topper authored
Make FMA3 imply AVX needs to be enabled. Particularly because 256-bit types aren't valid unless AVX is enabled. llvm-svn: 147349
-
Craig Topper authored
llvm-svn: 147348
-
Craig Topper authored
llvm-svn: 147347
-
Craig Topper authored
Mark non-VEX forms of PCLMUL instructions as requiring SSE2 to be enabled along with CLMUL. That's required for the XMM registers to be valid for integer data. Doesn't change any behavior since the CLMUL instructions don't have patterns yet. llvm-svn: 147345
-
Craig Topper authored
Mark non-VEX forms of AES instructions as requiring SSE2 to be enabled along with AES. Since that's required for the XMM registers to be valid for integer data. Doesn't change any behavior though since you can't use an intrinsic with an illegal type anyway. Just makes it consistent with the VEX forms. llvm-svn: 147344
-
Craig Topper authored
Remove the separate explicit AES instruction patterns. They are equivalent to the patterns specified by the instructions. Also remove unnecessary bitconverts from the AES patterns. llvm-svn: 147342
-
Craig Topper authored
Make SSE42 and SSE4A not imply POPCNT. POPCNT should be able to be disabled on its own without disabling SSE4.2 or SSE4A. llvm-svn: 147339
-
Craig Topper authored
llvm-svn: 147337
-
Craig Topper authored
llvm-svn: 147336
-
Craig Topper authored
Remove trailing spaces. Fix an assert to use && instead of || before string. Add same assert on similar code path. llvm-svn: 147335
-
Rafael Espindola authored
llvm-svn: 147333
-
Nick Lewycky authored
captured. This allows the tracker to look at the specific use, which may be especially interesting for function calls. Use this to fix 'nocapture' deduction in FunctionAttrs. The existing one does not iterate until a fixpoint and does not guarantee that it produces the same result regardless of iteration order. The new implementation builds up a graph of how arguments are passed from function to function, and uses a bottom-up walk on the argument-SCCs to assign nocapture. This gets us nocapture more often, and does so rather efficiently and independent of iteration order. llvm-svn: 147327
-
- Dec 28, 2011
-
-
Eli Friedman authored
llvm-svn: 147323
-
Bob Wilson authored
Patch by Jonathan Ragan-Kelley! llvm-svn: 147314
-
Rafael Espindola authored
llvm-svn: 147312
-
Nadav Rotem authored
Promotion of the mask operand needs to be done using PromoteTargetBoolean, and not padded with garbage. llvm-svn: 147309
-
Elena Demikhovsky authored
Matching MOVLP mask for AVX (265-bit vectors) was wrong. The failure was detected by conformance tests. llvm-svn: 147308
-
Nick Lewycky authored
llvm-svn: 147307
-
- Dec 27, 2011
-
-
Rafael Espindola authored
llvm-svn: 147296
-
Benjamin Kramer authored
- -25% memory usage of the main table on x86_64 (was wasted in struct padding). - no significant performance change. llvm-svn: 147294
-
Nick Lewycky authored
llvm-svn: 147292
-
Nick Lewycky authored
llvm-svn: 147291
-
Benjamin Kramer authored
llvm-svn: 147289
-
Craig Topper authored
Add handling of x86_avx2_pmovmskb to computeMaskedBitsForTargetNode for consistency. Add comments and an assert for BMI instructions to PerformXorCombine since the enabling of the combine is conditional on it, but the function itself isn't. llvm-svn: 147287
-
Nick Lewycky authored
to discard weights when appropriate. Still more to do (and a new TODO), but it's a start! llvm-svn: 147286
-
Nick Lewycky authored
there is non of that type to remove. This fixes a crasher in the particular case where the instruction has metadata but no metadata storage in the context (this is only possible if the instruction has !dbg but no other metadata info). llvm-svn: 147285
-
Rafael Espindola authored
llvm-svn: 147284
-
- Dec 26, 2011
-
-
Eli Friedman authored
Make sure DAGCombiner doesn't introduce multiple loads from the same memory location. PR10747, part 2. llvm-svn: 147283
-
Nick Lewycky authored
llvm-svn: 147280
-