History log of /llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (Results 1776 – 1800 of 2094)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 9960a250 08-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com>

Emit a more efficient magic number multiplication for exact sdivs.

We have to do this in DAGBuilder instead of DAGCombiner, because the exact bit is lost after building.

struct foo { char x[24];

Emit a more efficient magic number multiplication for exact sdivs.

We have to do this in DAGBuilder instead of DAGCombiner, because the exact bit is lost after building.

struct foo { char x[24]; };
long bar(struct foo *a, struct foo *b) { return a-b; }
is now compiled into
movl 4(%esp), %eax
subl 8(%esp), %eax
sarl $3, %eax
imull $-1431655765, %eax, %eax
instead of
movl 4(%esp), %eax
subl 8(%esp), %eax
movl $715827883, %ecx
imull %ecx
movl %edx, %eax
shrl $31, %eax
sarl $2, %edx
addl %eax, %edx
movl %edx, %eax

llvm-svn: 134695

show more ...


# 3f158fdf 06-Jul-2011 Jakub Staszak <jstaszak@apple.com>

Introduce "expect" intrinsic instructions.

llvm-svn: 134516


# f81292ba 30-Jun-2011 Eric Christopher <echristo@apple.com>

Remove getRegClassForInlineAsmConstraint and all dependencies.

Fixes rdar://9643582

llvm-svn: 134123


# 537a302d 27-Jun-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Distinguish early clobber output operands from clobbered registers.

Both become <earlyclobber> defs on the INLINEASM MachineInstr, but we
now use two different asm operand kinds.

The new Kind_Clobb

Distinguish early clobber output operands from clobbered registers.

Both become <earlyclobber> defs on the INLINEASM MachineInstr, but we
now use two different asm operand kinds.

The new Kind_Clobber is treated identically to the old
Kind_RegDefEarlyClobber for now, but x87 floating point stack inline
assembly does care about the difference.

This will pop a register off the stack:

asm("fstp %st" : : "t"(x) : "st");

While this will pop the input and push an output:

asm("fst %st" : "=&t"(r) : "t"(x));

We need to know if ST0 was a clobber or an output operand, and we can't
depend on <dead> flags for that.

llvm-svn: 133902

show more ...


# 36896bfd 19-Jun-2011 Nadav Rotem <nadav.rotem@intel.com>

When promoting the vector elements in CopyToParts, use vector trunc
instead of scalarizing, and doing an element-by-element truncat.

llvm-svn: 133382


# 12a43bdd 16-Jun-2011 Jakub Staszak <jstaszak@apple.com>

Introduce MachineBranchProbabilityInfo class, which has similar API to
BranchProbabilityInfo (expect setEdgeWeight which is not available here).
Branch Weights are kept in MachineBasicBlocks. To turn

Introduce MachineBranchProbabilityInfo class, which has similar API to
BranchProbabilityInfo (expect setEdgeWeight which is not available here).
Branch Weights are kept in MachineBasicBlocks. To turn off this analysis
set -use-mbpi=false.

llvm-svn: 133184

show more ...


# 1f641d57 16-Jun-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Add TargetRegisterInfo::getRawAllocationOrder().

This virtual function will replace allocation_order_begin/end as the one
to override when implementing custom allocation orders. It is simpler to
hav

Add TargetRegisterInfo::getRawAllocationOrder().

This virtual function will replace allocation_order_begin/end as the one
to override when implementing custom allocation orders. It is simpler to
have one function return an ArrayRef than having two virtual functions
computing different ends of the same array.

Use getRawAllocationOrder() in place of allocation_order_begin() where
it makes sense, but leave some clients that look like they really want
the filtered allocation orders from RegisterClassInfo.

llvm-svn: 133170

show more ...


# dc9ff3a4 14-Jun-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com>

Add one more argument to the prefetch intrinsic to indicate whether it's a data
or instruction cache access. Update the targets to match it and also teach
autoupgrade.

llvm-svn: 132976


# 083837e7 12-Jun-2011 Nadav Rotem <nadav.rotem@intel.com>

Improve the generated code by getCopyFromPartsVector for promoted integer types.
Instead of scalarizing, and doing an element-by-element truncat, use vector
truncate.
Add support for scalarization of

Improve the generated code by getCopyFromPartsVector for promoted integer types.
Instead of scalarizing, and doing an element-by-element truncat, use vector
truncate.
Add support for scalarization of vectors: i8 -> <1 x i1> (from Duncan's
testcase).

llvm-svn: 132892

show more ...


# 0713a9d8 08-Jun-2011 Eric Christopher <echristo@apple.com>

Add a parameter to CCState so that it can access the MachineFunction.

No functional change.

Part of PR6965

llvm-svn: 132763


# 06bd6d30 04-Jun-2011 Nadav Rotem <nadav.rotem@intel.com>

TypeLegalizer: Add support for passing of vector-promoted types in registers (copyFromParts/copyToParts).

llvm-svn: 132649


# fbff0e4f 03-Jun-2011 Eric Christopher <echristo@apple.com>

Add a TODO about memory operands.

llvm-svn: 132559


# de9399bf 02-Jun-2011 Eric Christopher <echristo@apple.com>

Have LowerOperandForConstraint handle multiple character constraints.

Part of rdar://9119939

llvm-svn: 132510


# 690030c1 01-Jun-2011 Eric Christopher <echristo@apple.com>

Allow bitcasts between valid types of the same size and vector
types if the vector type is legal.

Fixes rdar://9306086

llvm-svn: 132420


# 79928838 23-May-2011 Devang Patel <dpatel@apple.com>

Preserve debug info during iSel by keeping DanglingDebugInfoMap live until end of function.
Patch by Micah Villmow

llvm-svn: 131908


# 68254fcb 22-May-2011 Chris Lattner <sabre@nondot.org>

Eliminate some temporary variables, and don't call getByValTypeAlignment
when we're just going to throw the result away. No functionality change.

llvm-svn: 131880


# 8e60ff11 16-May-2011 Devang Patel <dpatel@apple.com>

Preserve debug info for unused zero extended boolean argument.
Radar 9422775.

llvm-svn: 131422


# e53b7d1a 13-May-2011 Rafael Espindola <rafael.espindola@gmail.com>

Make codegen able to handle values of empty types. This is one way
to fix PR9900. I will keep it open until sable is able to comment on it.

llvm-svn: 131294


# 50117f81 11-May-2011 Bill Wendling <isanbard@gmail.com>

Give the 'eh.sjlj.dispatchsetup' intrinsic call the value coming from the setjmp
intrinsic call. This prevents it from being reordered so that it appears
*before* the setjmp intrinsic (thus making it

Give the 'eh.sjlj.dispatchsetup' intrinsic call the value coming from the setjmp
intrinsic call. This prevents it from being reordered so that it appears
*before* the setjmp intrinsic (thus making it completely useless).
<rdar://problem/9409683>

llvm-svn: 131174

show more ...


# 768de0a0 10-May-2011 Eli Friedman <eli.friedman@gmail.com>

Disable my little CopyToReg argument hack with fast-isel. rdar://problem/9413587 .

llvm-svn: 131156


# 44804284 09-May-2011 Eric Christopher <echristo@apple.com>

Look through struct wrapped types for inline asm statments.

Patch by Evan Cheng.

llvm-svn: 131093


# d26fc5e0 06-May-2011 Evan Cheng <evan.cheng@apple.com>

80 col violations.

llvm-svn: 131015


# 441a01a2 05-May-2011 Eli Friedman <eli.friedman@gmail.com>

Avoid extra vreg copies for arguments passed in registers. Specifically, this can make MachineCSE more effective in some cases (especially in small functions). PR8361 / part of rdar://problem/82594

Avoid extra vreg copies for arguments passed in registers. Specifically, this can make MachineCSE more effective in some cases (especially in small functions). PR8361 / part of rdar://problem/8259436 .

llvm-svn: 130928

show more ...


# 734f2218 25-Apr-2011 Devang Patel <dpatel@apple.com>

A dbg.declare may not be in entry block, even if it is referring to an incoming argument. However, It is appropriate to emit DBG_VALUE referring to this incoming argument in entry block in MachineFun

A dbg.declare may not be in entry block, even if it is referring to an incoming argument. However, It is appropriate to emit DBG_VALUE referring to this incoming argument in entry block in MachineFunction.

llvm-svn: 130129

show more ...


# 0ab5e2cd 15-Apr-2011 Chris Lattner <sabre@nondot.org>

Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!

llvm-svn: 129558


1...<<71727374757677787980>>...84