- May 03, 2012
-
-
Sirish Pande authored
This adds new instructions for Hexagon V4 architecture. llvm-svn: 156071
-
Craig Topper authored
llvm-svn: 156060
-
Craig Topper authored
Fix 256-bit vpshuflw and vpshufhw immediate encoding to handle undefs in the lower half correctly. Missed in r155982. llvm-svn: 156059
-
Andrew Trick authored
The ensures that virtual registers always belong to an allocatable class. If your target attempts to create a vreg for an operand that has no allocatable register subclass, you will crash quickly. This ensures that targets define register classes as intended. llvm-svn: 156046
-
Preston Gurd authored
For Intel Atom, use ILP scheduling always, instead of ILP for 64 bit and Hybrid for 32 bit, since benchmarks show ILP scheduling is better most of the time. llvm-svn: 156028
-
- May 02, 2012
-
-
Preston Gurd authored
Lincroft and Medfield. llvm-svn: 156025
-
Jim Grosbach authored
llvm-svn: 156019
-
Preston Gurd authored
by providing the latencies for the instructions in X86InstrFPStack.td. llvm-svn: 155996
-
Manman Ren authored
The commit is intended to fix rdar://10961709. But it is the root cause of PR12720. Revert it for now. llvm-svn: 155992
-
Richard Barton authored
llvm-svn: 155983
-
Craig Topper authored
llvm-svn: 155982
-
Jakub Staszak authored
llvm-svn: 155959
-
Jakub Staszak authored
llvm-svn: 155956
-
- May 01, 2012
-
-
Jim Grosbach authored
Aliases for adding a negative immediate when using an explicit 'w' suffix. E.g., adds.w r2, #-16 adds.w r2, r2, #-16 addw r2, #-16 addw r2, #-16 addw r2, r2, #-16 rdar://11330769 llvm-svn: 155946
-
Jim Grosbach authored
Expressions for movw/movt don't always have an :upper16: or :lower16: on them and that's ok. When they don't, it's just a plain [0-65536] immediate result, effectively the same as a :lower16: variant kind. rdar://10550147 llvm-svn: 155941
-
Preston Gurd authored
This patch marks the X86 floating point stack registers ST0-ST7 as reserved in order to avoid assertion failures in the register scavenger. The assertion failures were “Bad machine code: Using an undefined physical register” and “Bad machine code: MBB exits via unconditional fall-through but its successor differs from its CFG successor!”. llvm-svn: 155930
-
Manman Ren authored
This patch will optimize the following cases on X86 (a > b) ? (a-b) : 0 (a >= b) ? (a-b) : 0 (b < a) ? (a-b) : 0 (b <= a) ? (a-b) : 0 FROM movl %edi, %ecx subl %esi, %ecx cmpl %edi, %esi movl $0, %eax cmovll %ecx, %eax TO xorl %eax, %eax subl %esi, %edi cmovll %eax, %edi movl %edi, %eax rdar: 10734411 llvm-svn: 155919
-
Alexey Samsonov authored
X86: Use StackRegister instead of FrameRegister in getFrameIndexReference (to generate debug info for local variables) if stack needs realignment llvm-svn: 155917
-
Benjamin Kramer authored
llvm-svn: 155915
-
Benjamin Kramer authored
llvm-svn: 155909
-
Bill Wendling authored
The TargetPassManager's default constructor wants to initialize the PassManager to 'null'. But it's illegal to bind a null reference to a null l-value. Make the ivar a pointer instead. PR12468 llvm-svn: 155902
-
Craig Topper authored
llvm-svn: 155899
-
Craig Topper authored
llvm-svn: 155897
-
Craig Topper authored
llvm-svn: 155896
-
Craig Topper authored
llvm-svn: 155891
-
Craig Topper authored
Remove HasSSE2 from AES and CLMUL predicates. It's now implied by the HasAES and HasCLMUL predicates. llvm-svn: 155890
-
Craig Topper authored
llvm-svn: 155888
-
Craig Topper authored
llvm-svn: 155885
-
Manman Ren authored
This patch will optimize -(x != 0) on X86 FROM cmpl $0x01,%edi sbbl %eax,%eax notl %eax TO negl %edi sbbl %eax %eax llvm-svn: 155853
-
Jim Grosbach authored
Replace some assert() calls w/ actual diagnostics. In a perfect world, there'd be range checks on these values long before things ever reached this code. For now, though, issuing a better-late-than-never diagnostic is still a big improvement over assert(). rdar://11347287 llvm-svn: 155851
-
- Apr 30, 2012
-
-
Jakob Stoklund Olesen authored
This was exposed by SingleSource/UnitTests/Vector/constpool.c. The computed size of a basic block isn't always a multiple of its known alignment, and that can introduce extra alignment padding after the block. <rdar://problem/11347135> llvm-svn: 155845
-
Chad Rosier authored
llvm-svn: 155832
-
Derek Schuff authored
On x86-32, structure return via sret lets the callee pop the hidden pointer argument off the stack, which the caller then re-pushes. However if the calling convention is fastcc, then a register is used instead, and the caller should not adjust the stack. This is implemented with a check of IsTailCallConvention X86TargetLowering::LowerCall but is now checked properly in X86FastISel::DoSelectCall. (this time, actually commit what was reviewed!) llvm-svn: 155825
-
rdar://11324364Bob Wilson authored
ARM BUILD_VECTORs created after type legalization cannot use i8 or i16 operands, since those types are not legal. Instead use i32 operands, which will be implicitly truncated by the BUILD_VECTOR to match the element type. llvm-svn: 155824
-
Craig Topper authored
llvm-svn: 155811
-
Pete Cooper authored
Copied all the VEX prefix encoding code from X86MCCodeEmitter to the x86 JIT emitter. Needs some major refactoring as these two code emitters are almost identical llvm-svn: 155810
-
- Apr 29, 2012
-
-
Jakub Staszak authored
llvm-svn: 155800
-
Craig Topper authored
llvm-svn: 155798
-
Kalle Raiskila authored
llvm-svn: 155797
-
- Apr 28, 2012
-
-
Jakob Stoklund Olesen authored
The code could search past the end of the basic block when there was already a constant pool entry after the block. Test case with giant basic block in SingleSource/UnitTests/Vector/constpool.c llvm-svn: 155753
-