- Dec 09, 2011
-
-
Evan Cheng authored
llvm-svn: 146246
-
- Dec 08, 2011
-
-
-
Evan Cheng authored
code looks pretty bad compared to SSE. rdar://10538793 llvm-svn: 146191
-
Owen Anderson authored
Don't explicitly marked libm rounding ops as legal on SSE4.1/AVX. There don't seem to be patterns for these, so I don't know why they were marked legal in the first place. Fixes failures caused by r146171. llvm-svn: 146180
-
Owen Anderson authored
Teach SelectionDAG to match more calls to libm functions onto existing SDNodes. Mark these nodes as illegal by default, unless the target declares otherwise. llvm-svn: 146171
-
Evan Cheng authored
Many of the SSE patterns should not be selected when AVX is available. This led to the following code in X86Subtarget.cpp if (HasAVX) X86SSELevel = NoMMXSSE; This is so patterns that are predicated on hasSSE3, etc. would not be selected when avx is available. Instead, the AVX variant is selected. However, this breaks instructions which do not have AVX variants. The right way to fix this is for the SSE but not-AVX patterns to predicate on something like hasSSE3() && !hasAVX(). Then we can take out the hack in X86Subtarget.cpp. Patterns which do not have AVX variants do not need to change. However, we need to audit all the patterns before we make the change. This patch is workaround that fixes one specific case, the prefetch instructions. rdar://10538297 llvm-svn: 146163
-
Jan Sjödin authored
llvm-svn: 146151
-
- Dec 07, 2011
-
-
Craig Topper authored
Fix a bunch of SSE/AVX patterns to use proper memop types. In particular, not using integer loads other than v2i64/v4i64 since the others are all promoted. llvm-svn: 146031
-
Bill Wendling authored
llvm-svn: 146030
-
Bill Wendling authored
llvm-svn: 146029
-
Evan Cheng authored
generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. llvm-svn: 146026
-
- Dec 06, 2011
-
-
Bill Wendling authored
llvm-svn: 145976
-
Bill Wendling authored
llvm-svn: 145969
-
Bill Wendling authored
* Rename variables to reflect what they're actually used for. llvm-svn: 145968
-
Bill Wendling authored
llvm-svn: 145954
-
Bill Wendling authored
llvm-svn: 145952
-
Craig Topper authored
llvm-svn: 145929
-
Craig Topper authored
Fix a bunch of SSE/AVX patterns to use v2i64/v4i64 loads since all other integer vector loads are promoted to those. llvm-svn: 145927
-
Craig Topper authored
llvm-svn: 145926
-
Craig Topper authored
Clean up some of the shuffle decoding code for UNPCK instructions. Add instruction commenting for AVX/AVX2 forms for integer UNPCKs. llvm-svn: 145924
-
Craig Topper authored
Merge isSHUFPMask and isCommutedSHUFPMask into single function that can do both. Do the same for the 256-bit version. Use loops to reduce size of isVSHUFPYMask. Fix test cases that were incorrectly passing due to isCommutedSHUFPMask not checking for the vector being 128-bit. This caused some 256-bit shuffles to be incorrectly commuted. llvm-svn: 145921
-
Bill Wendling authored
llvm-svn: 145896
-
Jakob Stoklund Olesen authored
This was actually a bit of a mess. TLI.setPrefLoopAlignment was clearly documented as taking log2(bytes) units, but the x86 target would still set a preferred loop alignment of '16'. CodePlacementOpt passed this number on to the basic block, and AsmPrinter interpreted it as bytes. Now both MachineFunction and MachineBasicBlock use logarithmic alignments. Obviously, MachineConstantPool still measures alignments in bytes, so we can emulate the thrill of using as. llvm-svn: 145889
-
Bill Wendling authored
value over that much. llvm-svn: 145888
-
Jim Grosbach authored
Whether a fixup needs relaxation for the associated instruction is a target-specific function, as the FIXME indicated. Create a hook for that and use it. llvm-svn: 145881
-
- Dec 05, 2011
-
-
Craig Topper authored
llvm-svn: 145804
-
Craig Topper authored
llvm-svn: 145803
-
- Dec 03, 2011
-
-
Sanjoy Das authored
libgcc sets the stack limit field in TCB to 256 bytes above the actual allocated stack limit. This means if the function's stack frame needs less than 256 bytes, we can just compare the stack pointer with the stack limit. This should result in lesser calls to __morestack. llvm-svn: 145766
-
Sanjoy Das authored
Currently LLVM pads the call to __morestack with a add and sub of 8 bytes to esp. This isn't correct since __morestack expects the call to be followed directly by a ret. This commit also adjusts the relevant test-case. llvm-svn: 145765
-
Nick Lewycky authored
the same value) to this variable. This code could be refactored, but it doesn't matter since the old JIT is going away. Add tsan annotations to ignore the race. llvm-svn: 145745
-
- Dec 02, 2011
-
-
Nick Lewycky authored
change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. llvm-svn: 145714
-
Jan Sjödin authored
llvm-svn: 145682
-
Craig Topper authored
llvm-svn: 145681
-
Craig Topper authored
Add instruction selection support for horizontal add/sub of 256-bit floating point vectors. Also add the test case for 256-bit integer vectors. llvm-svn: 145680
-
- Dec 01, 2011
-
-
Sanjoy Das authored
llvm-svn: 145619
-
Eric Christopher authored
sure we can emit both the high and low versions of those registers. Fixes rdar://10392864 llvm-svn: 145579
-
-
- Nov 30, 2011
-
-
Jan Sjödin authored
remaining FMA4 instructions and intrinsics with tests. llvm-svn: 145525
-
Benjamin Kramer authored
While at it remove the barcelona/instanbul/shanghai subtargets, they're unsupported by GCC and look pretty broken. llvm-svn: 145494
-
Benjamin Kramer authored
llvm-svn: 145493
-