- Oct 15, 2012
-
-
Chad Rosier authored
llvm-svn: 165955
-
Chad Rosier authored
llvm-svn: 165947
-
Micah Villmow authored
Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis. llvm-svn: 165941
-
- Oct 13, 2012
-
-
Benjamin Kramer authored
llvm-svn: 165878
-
Benjamin Kramer authored
llvm-svn: 165871
-
Benjamin Kramer authored
X86 doesn't have i8 cmovs so isel would emit a branch. Emitting branches at this level is often not a good idea because it's too late for many optimizations to kick in. This solution doesn't add any extensions (truncs are free) and tries to avoid introducing partial register stalls by filtering direct copyfromregs. I'm seeing a ~10% speedup on reading a random .png file with libpng15 via graphicsmagick on x86_64/westmere, but YMMV depending on the microarchitecture. llvm-svn: 165868
-
Chad Rosier authored
the interface between the front-end and the MC layer when parsing inline assembly. Unfortunately, this is too deep into the parsing stack. Specifically, we're unable to handle target-independent assembly (i.e., assembly directives, labels, etc.). Note the MatchAndEmitInstruction() isn't the correct abstraction either. I'll be exposing target-independent hooks shortly, so this is really just a cleanup. llvm-svn: 165858
-
Chad Rosier authored
llvm-svn: 165847
-
Chad Rosier authored
MapAndConstraints vector. Also remove the unused Kind argument. llvm-svn: 165833
-
- Oct 11, 2012
-
-
Micah Villmow authored
llvm-svn: 165747
-
Micah Villmow authored
Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly. llvm-svn: 165726
-
NAKAMURA Takumi authored
It broke stage2 clang and test-suite/MultiSource/Benchmarks/mediabench/g721/g721encode. llvm-svn: 165692
-
Evan Cheng authored
llvm-svn: 165677
-
Nadav Rotem authored
Add a new interface to allow IR-level passes to access codegen-specific information. llvm-svn: 165665
-
- Oct 10, 2012
-
-
Nadav Rotem authored
Original message: The attached is the fix to radar://11663049. The optimization can be outlined by following rules: (select (x != c), e, c) -> select (x != c), e, x), (select (x == c), c, e) -> select (x == c), x, e) where the <c> is an integer constant. The reason for this change is that : on x86, conditional-move-from-constant needs two instructions; however, conditional-move-from-register need only one instruction. While the LowerSELECT() sounds to be the most convenient place for this optimization, it turns out to be a bad place. The reason is that by replacing the constant <c> with a symbolic value, it obscure some instruction-combining opportunities which would otherwise be very easy to spot. For that reason, I have to postpone the change to last instruction-combining phase. The change passes the test of "make check-all -C <build-root/test" and "make -C project/test-suite/SingleSource". llvm-svn: 165661
-
Michael Liao authored
- Due to the current matching vector elements constraints in ISD::FP_ROUND, rounding from v2f64 to v4f32 (after legalization from v2f32) is scalarized. Add a customized v2f32 widening to convert it into a target-specific X86ISD::VFPROUND to work around this constraints. llvm-svn: 165631
-
Michael Liao authored
- Due to the current matching vector elements constraints in ISD::FP_EXTEND, rounding from v2f32 to v2f64 is scalarized. Add a customized v2f32 widening to convert it into a target-specific X86ISD::VFPEXT to work around this constraints. This patch also reverts a previous attempt to fix this issue by recovering the scalarized ISD::FP_EXTEND pattern and thus significantly reduces the overhead of supporting non-power-2 vector FP extend. llvm-svn: 165625
-
-
- Oct 09, 2012
-
-
Bill Wendling authored
llvm-svn: 165550
-
Bill Wendling authored
We use the enums to query whether an Attributes object has that attribute. The opaque layer is responsible for knowing where that specific attribute is stored. llvm-svn: 165488
-
Craig Topper authored
Separate AVXCC and SSECC printing for cmpps/pd/ss/sd and add masking before the switch statement. This keeps the unreachable default case from being hit if the instruction was created with an intrinsic with too large of an immediate. llvm-svn: 165483
-
Craig Topper authored
Remove some unused code in the X86AsmPrinter. Add LLVM_OVERRIDE and virtual keywords to the remaining interface methods. llvm-svn: 165478
-
- Oct 08, 2012
-
-
Andrew Trick authored
llvm-svn: 165418
-
Micah Villmow authored
llvm-svn: 165402
-
- Oct 07, 2012
-
-
Benjamin Kramer authored
Otherwise it will try to use SSE patterns and fail horribly if sse is disabled. Fixes PR14035. llvm-svn: 165377
-
- Oct 05, 2012
-
-
Chad Rosier authored
llvm-svn: 165324
-
Craig Topper authored
llvm-svn: 165303
-
Craig Topper authored
Move expansion of SETB_C(8/16/32/64)r from MCInstLower to ExpandPostRAPseudos and mark them as pseudos in the td file. llvm-svn: 165302
-
Evan Cheng authored
Follow up to r165072. Try a different approach: only move the load when it's going to be folded into the call. rdar://12437604 llvm-svn: 165287
-
Chad Rosier authored
segmented registers. Test case to come. llvm-svn: 165275
-
- Oct 04, 2012
-
-
Preston Gurd authored
a pointer to a type, in order to remove the uses of getGlobalContext(). Patch by Tyler Nowicki. llvm-svn: 165255
-
Eric Christopher authored
a) frame setup instructions define the prologue b) we shouldn't change our location mid-stream Add a test to make sure that the stack adjustment stays within the prologue. llvm-svn: 165250
-
Michael Liao authored
- Add 'HwEncoding' for X86 registers and call getEncodingValue() to retrieve their encoding values. - This's the first step to adopt new scheme. Furthur revising is onging. llvm-svn: 165241
-
Bill Wendling authored
llvm-svn: 165205
-
Michael Liao authored
llvm-svn: 165182
-
Chad Rosier authored
in the Intel syntax. The MC layer supports emitting in the Intel syntax, but this would require the inline assembly MachineInstr to be lowered to an MCInst before emission. This is potential future work, but for now emitting directly from the MachineInstr suffices. llvm-svn: 165173
-
- Oct 03, 2012
-
-
Chad Rosier authored
llvm-svn: 165141
-
Bill Wendling authored
enums. This allows for better encapsulation of the Attributes class. llvm-svn: 165132
-
Preston Gurd authored
Corrects a problem whereby MCSchedModel was not being set up when the CPU type was auto-detected. Patch by Andy Zhang. llvm-svn: 165122
-
Eric Christopher authored
more detail. llvm-svn: 165099
-