History log of /llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (Results 1901 – 1925 of 2094)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2810baca 26-Jul-2010 Dan Gohman <gohman@apple.com>

Handle Values with no value in getCopyFromRegs.

llvm-svn: 109415


# 0baaa9bc 17-Jul-2010 Eric Christopher <echristo@apple.com>

Propagate alloca alignment information via variable size object frame
information.

No functional change yet.

llvm-svn: 108583


# 1e936277 16-Jul-2010 Dan Gohman <gohman@apple.com>

Revert r108369, sorting llvm.dbg.declare information by source position,
since it doesn't work for front-ends which don't emit column information
(which includes llvm-gcc in its present configuration

Revert r108369, sorting llvm.dbg.declare information by source position,
since it doesn't work for front-ends which don't emit column information
(which includes llvm-gcc in its present configuration), and doesn't
work for clang for K&R style variables where the variables are declared
in a different order from the parameter list.

Instead, make a separate pass through the instructions to collect the
llvm.dbg.declare instructions in order. This ensures that the debug
information for variables is emitted in this order.

llvm-svn: 108538

show more ...


# bfd4fd7b 16-Jul-2010 Dale Johannesen <dalej@apple.com>

The SelectionDAGBuilder's handling of debug info, on rare
occasions, caused code to be generated in a different order.
All cases I've seen involved float softening in the type
legalizer, and this cou

The SelectionDAGBuilder's handling of debug info, on rare
occasions, caused code to be generated in a different order.
All cases I've seen involved float softening in the type
legalizer, and this could be perhaps be fixed there, but
it's better not to generate things differently in the first
place. 7797940 (6/29/2010..7/15/2010).

llvm-svn: 108484

show more ...


# 4bda1c8e 15-Jul-2010 Bill Wendling <isanbard@gmail.com>

Revert. This isn't the correct way to go.

llvm-svn: 108478


# 973dc3b1 15-Jul-2010 Bill Wendling <isanbard@gmail.com>

Handle code gen for the unreachable instruction if it's the only instruction in
the function. We'll just turn it into a "trap" instruction instead.

The problem with not handling this is that it migh

Handle code gen for the unreachable instruction if it's the only instruction in
the function. We'll just turn it into a "trap" instruction instead.

The problem with not handling this is that it might generate a prologue without
the equivalent epilogue to go with it:

$ cat t.ll
define void @foo() {
entry:
unreachable
}
$ llc -o - t.ll -relocation-model=pic -disable-fp-elim -unwind-tables
.section __TEXT,__text,regular,pure_instructions
.globl _foo
.align 4, 0x90
_foo: ## @foo
Leh_func_begin0:
## BB#0: ## %entry
pushq %rbp
Ltmp0:
movq %rsp, %rbp
Ltmp1:
Leh_func_end0:
...

The unwind tables then have bad data in them causing all sorts of problems.

Fixes <rdar://problem/8096481>.

llvm-svn: 108473

show more ...


# 474e56a2 14-Jul-2010 Eric Christopher <echristo@apple.com>

80-col.

llvm-svn: 108381


# caca5488 13-Jul-2010 Dale Johannesen <dalej@apple.com>

In inline asm treat indirect 'X' constraint as 'm'.
This may not be right in all cases, but it's better
than asserting which it was doing before. PR 7528.

llvm-svn: 108268


# a18c5a0e 12-Jul-2010 Rafael Espindola <rafael.espindola@gmail.com>

Fix a typo and fit in 80 columns. Found by Bob Wilson.

llvm-svn: 108164


# a76eccf8 11-Jul-2010 Rafael Espindola <rafael.espindola@gmail.com>

Fix va_arg for doubles. With this patch VAARG nodes always contain the
correct alignment information, which simplifies ExpandRes_VAARG a bit.

The patch introduces a new alignment information to Targ

Fix va_arg for doubles. With this patch VAARG nodes always contain the
correct alignment information, which simplifies ExpandRes_VAARG a bit.

The patch introduces a new alignment information to TargetLoweringInfo. This is
needed since the two natural candidates cannot be used:

* The 's' in target data: If this is set to the minimal alignment of any
argument, getCallFrameTypeAlignment would return 4 for doubles on ARM for
example.
* The getTransientStackAlignment method. It is possible for an architecture to
have argument less aligned than what we maintain the stack pointer.

llvm-svn: 108072

show more ...


# d7b5ce33 10-Jul-2010 Dan Gohman <gohman@apple.com>

Reapply bottom-up fast-isel, with several fixes for x86-32:
- Check getBytesToPopOnReturn().
- Eschew ST0 and ST1 for return values.
- Fix the PIC base register initialization so that it doesn't e

Reapply bottom-up fast-isel, with several fixes for x86-32:
- Check getBytesToPopOnReturn().
- Eschew ST0 and ST1 for return values.
- Fix the PIC base register initialization so that it doesn't ever
fail to end up the top of the entry block.

llvm-svn: 108039

show more ...


# 6586e9b2 09-Jul-2010 Bob Wilson <bob.wilson@apple.com>

--- Reverse-merging r107947 into '.':
U utils/TableGen/FastISelEmitter.cpp
--- Reverse-merging r107943 into '.':
U test/CodeGen/X86/fast-isel.ll
U test/CodeGen/X86/fast-isel-loads.ll
U in

--- Reverse-merging r107947 into '.':
U utils/TableGen/FastISelEmitter.cpp
--- Reverse-merging r107943 into '.':
U test/CodeGen/X86/fast-isel.ll
U test/CodeGen/X86/fast-isel-loads.ll
U include/llvm/Target/TargetLowering.h
U include/llvm/Support/PassNameParser.h
U include/llvm/CodeGen/FunctionLoweringInfo.h
U include/llvm/CodeGen/CallingConvLower.h
U include/llvm/CodeGen/FastISel.h
U include/llvm/CodeGen/SelectionDAGISel.h
U lib/CodeGen/LLVMTargetMachine.cpp
U lib/CodeGen/CallingConvLower.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
U lib/CodeGen/SelectionDAG/FastISel.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
U lib/CodeGen/SelectionDAG/InstrEmitter.cpp
U lib/CodeGen/SelectionDAG/TargetLowering.cpp
U lib/Target/XCore/XCoreISelLowering.cpp
U lib/Target/XCore/XCoreISelLowering.h
U lib/Target/X86/X86ISelLowering.cpp
U lib/Target/X86/X86FastISel.cpp
U lib/Target/X86/X86ISelLowering.h

llvm-svn: 107987

show more ...


# 0b5aa1cd 09-Jul-2010 Dan Gohman <gohman@apple.com>

Re-apply bottom-up fast-isel, with fixes. Be very careful to avoid emitting
a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL.

llvm-svn: 107943


# e7570436 08-Jul-2010 Dan Gohman <gohman@apple.com>

Revert 107840 107839 107813 107804 107800 107797 107791.
Debug info intrinsics win for now.

llvm-svn: 107850


# e7ccc51c 07-Jul-2010 Dan Gohman <gohman@apple.com>

Implement bottom-up fast-isel. This has the advantage of not requiring
a separate DCE pass over MachineInstrs.

llvm-svn: 107804


# 2d4d01d0 07-Jul-2010 Dan Gohman <gohman@apple.com>

Add X86FastISel support for return statements. This entails refactoring
a bunch of stuff, to allow the target-independent calling convention
logic to be employed.

llvm-svn: 107800


# e784616f 07-Jul-2010 Dan Gohman <gohman@apple.com>

Move FunctionLoweringInfo.h out into include/llvm/CodeGen. This will
allow target-specific fast-isel code to make use of it directly.

llvm-svn: 107787


# fe7532a3 07-Jul-2010 Dan Gohman <gohman@apple.com>

Split the SDValue out of OutputArg so that SelectionDAG-independent
code can do calling-convention queries. This obviates OutputArgReg.

llvm-svn: 107786


# ee0cb703 06-Jul-2010 Dan Gohman <gohman@apple.com>

CanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext.

SelectBasicBlock doesn't needs its BasicBlock argument.

llvm-svn: 107712


# a3ca21b2 06-Jul-2010 Devang Patel <dpatel@apple.com>

Propagate debug loc.

llvm-svn: 107710


# 2c0315a0 05-Jul-2010 Chris Lattner <sabre@nondot.org>

random tidying

llvm-svn: 107612


# 4d887f7c 02-Jul-2010 Dale Johannesen <dalej@apple.com>

Propagate the AlignStack bit in InlineAsm's to the
PrologEpilog code, and use it to determine whether
the asm forces stack alignment or not. gcc consistently
does not do this for GCC-style asms; Ap

Propagate the AlignStack bit in InlineAsm's to the
PrologEpilog code, and use it to determine whether
the asm forces stack alignment or not. gcc consistently
does not do this for GCC-style asms; Apple gcc inconsistently
sometimes does it for asm blocks. There is no
convenient place to put a bit in either the SDNode or
the MachineInstr form, so I've added an extra operand
to each; unlovely, but it does allow for expansion for
more bits, should we need it. PR 5125. Some
existing testcases are affected.
The operand lists of the SDNode and MachineInstr forms
are indexed with awesome mnemonics, like "2"; I may
fix this someday, but not now. I'm not making it any
worse. If anyone is inspired I think you can find all
the right places from this patch.

llvm-svn: 107506

show more ...


# 93f59209 02-Jul-2010 Dan Gohman <gohman@apple.com>

Rename CreateReg to CreateRegs, and MakeReg to CreateReg.

llvm-svn: 107451


# 85e02e93 01-Jul-2010 Dan Gohman <gohman@apple.com>

Rename CreateRegForValue to CreateReg, and change its argument
from a Value to a Type, because it doesn't actually care about
the Value.

llvm-svn: 107383


# d4322231 01-Jul-2010 Dan Gohman <gohman@apple.com>

Reapply r106422, splitting the code for materializing a value out of
SelectionDAGBuilder::getValue into a helper function, with fixes to
use DenseMaps safely.

llvm-svn: 107371


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