| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
ISD condition opcodes into helper functions.
llvm-svn: 57726
|
| |
|
|
| |
llvm-svn: 57715
|
| |
|
|
|
|
| |
touches memory and need an associated MemOperand
llvm-svn: 57712
|
| |
|
|
|
|
| |
ISD condition opcodes into helper functions.
llvm-svn: 57710
|
| |
|
|
|
|
|
| |
that have different sizes (e.g. i32 and i64) make sure to reserve registers for
the bigger operand.
llvm-svn: 57699
|
| |
|
|
| |
llvm-svn: 57690
|
| |
|
|
|
|
|
| |
constraint. Reject asms where an output has multiple
input constraints tied to it.
llvm-svn: 57687
|
| |
|
|
|
|
|
| |
array. Improve some minor comments, refactor some helpers in
AsmOperandInfo. No functionality change for valid code.
llvm-svn: 57686
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
shift counts, and patterns that match dynamic shift counts
when the subtract is obscured by a truncate node.
Add DAGCombiner support for recognizing rotate patterns
when the shift counts are defined by truncate nodes.
Fix and simplify the code for commuting shld and shrd
instructions to work even when the given instruction doesn't
have a parent, and when the caller needs a new instruction.
These changes allow LLVM to use the shld, shrd, rol, and ror
instructions on x86 to replace equivalent code using two
shifts and an or in many more cases.
llvm-svn: 57662
|
| |
|
|
|
|
|
|
|
|
|
| |
i.e. conditions that cannot be checked with a single instruction. For example,
SETONE and SETUEQ on x86.
- Teach legalizer to implement *illegal* setcc as a and / or of a number of
legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is
implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ.
- Move x86 target over.
llvm-svn: 57542
|
| |
|
|
|
|
|
|
|
| |
- Move the EH landing-pad code and adjust it so that it works
with FastISel as well as with SDISel.
- Add FastISel support for @llvm.eh.exception and
@llvm.eh.selector.
llvm-svn: 57539
|
| |
|
|
| |
llvm-svn: 57526
|
| |
|
|
|
|
|
|
|
| |
instead of requiring all "short description" strings to begin with
two spaces. This makes these strings less mysterious, and it fixes
some cases where short description strings mistakenly did not
begin with two spaces.
llvm-svn: 57521
|
| |
|
|
|
|
| |
LegalizeSetCCOperands are leglized. Patch by Richard Pennington.
llvm-svn: 57460
|
| |
|
|
|
|
|
| |
null. This assumes that any target that does not have AsmInfo, does not
support "LocAndDot".
llvm-svn: 57438
|
| |
|
|
| |
llvm-svn: 57428
|
| |
|
|
|
|
|
| |
parameters instead of raw Constants. This prevents the constants from
being selected by the isel pass, fixing PR2735.
llvm-svn: 57385
|
| |
|
|
| |
llvm-svn: 57371
|
| |
|
|
|
|
|
| |
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.
llvm-svn: 57329
|
| |
|
|
|
|
|
| |
make it clearer what the function does. No functional
change.
llvm-svn: 57325
|
| |
|
|
|
|
|
| |
for things like null pointers, which at this level aren't
different from regular integer constants.
llvm-svn: 57265
|
| |
|
|
| |
llvm-svn: 57255
|
| |
|
|
| |
llvm-svn: 57249
|
| |
|
|
| |
llvm-svn: 57248
|
| |
|
|
|
|
| |
test/Codegen/Generic/i128-addsub.ll on x86
llvm-svn: 57247
|
| |
|
|
| |
llvm-svn: 57243
|
| |
|
|
|
|
| |
2006-01-23-UnionInit on x86-64 when inlining is not enabled.
llvm-svn: 57223
|
| |
|
|
|
|
| |
patch by Mikael Lepisto!
llvm-svn: 57077
|
| |
|
|
|
|
|
|
| |
expand to multiple basic blocks, in which case fast-isel
needs to informed of which block to use as it resumes
inserting instructions.
llvm-svn: 57040
|
| |
|
|
|
|
|
| |
incidentally making the case where the memop is a
pointer deref work. Fix cmp-and-swap regression.
llvm-svn: 57027
|
| |
|
|
| |
llvm-svn: 57021
|
| |
|
|
|
|
|
|
|
| |
than the type an i1 is promoted to (eg: i8). Account
for this. Noticed by Tilmann Scheller on CellSPU; he
will hopefully take care of fixing this in LegalizeDAG
and adding a testcase!
llvm-svn: 56997
|
| |
|
|
|
|
|
| |
It turns out that this is a fairly common operation,
and it's easy enough to handle.
llvm-svn: 56990
|
| |
|
|
|
|
|
|
|
|
|
| |
sequences like this:
sete %al
testb %al, %al
jne LBB11_1
with this:
je LBB11_1
llvm-svn: 56969
|
| |
|
|
| |
llvm-svn: 56963
|
| |
|
|
| |
llvm-svn: 56927
|
| |
|
|
|
|
| |
immediately.
llvm-svn: 56921
|
| |
|
|
| |
llvm-svn: 56919
|
| |
|
|
| |
llvm-svn: 56900
|
| |
|
|
|
|
| |
- Testcase for r56885.
llvm-svn: 56886
|
| |
|
|
|
|
|
|
|
| |
`-fno-builtin' flag. Currently, it's used to replace "memset" with "_bzero"
instead of "__bzero" on Darwin10+. This arguably violates the meaning of this
flag, but is currently sufficient. The meaning of this flag should become more
specific over time.
llvm-svn: 56885
|
| |
|
|
|
|
| |
they'll be a little more visible. Also, update and reword them a bit.
llvm-svn: 56877
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Completely eliminate the TopOrder std::vector. Instead, sort
the AllNodes list in place. This also eliminates the need to
call AllNodes.size(), a linear-time operation, before
performing the sort.
Also, eliminate the Sources temporary std::vector, since it
essentially duplicates the sorted result as it is being
built.
This also changes the direction of the topological sort
from bottom-up to top-down. The AllNodes list starts out in
roughly top-down order, so this reduces the amount of
reordering needed. Top-down is also more convenient for
Legalize, and ISel needed only minor adjustments.
llvm-svn: 56867
|
| |
|
|
|
|
| |
valid types. No functional change.
llvm-svn: 56808
|
| |
|
|
|
|
| |
in functions with PIC references from more than one basic block.
llvm-svn: 56807
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
llvm-gcc:
/Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -mmacosx-version-min=10.4 -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Gir/devel/llvm/clean/llvm.obj/include -I/Volumes/Gir/devel/llvm/clean/llvm.src/include -fexceptions -fvisibility=hidden -DHIDE_EXPORTS -c ../../llvm-gcc.src/gcc/unwind-dw2-fde-darwin.c -o libgcc/./unwind-dw2-fde-darwin.o
Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Gir/devel/llvm/clean/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311.
../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
{standard input}:3521:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb"
{standard input}:3521:symbol: "_dwarf_reg_size_table" can't be undefined in a subtraction expression
{standard input}:3520:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb"
...
llvm-svn: 56703
|
| |
|
|
|
|
|
| |
consistancy with ConstantInt, and re-implement it in terms
of ConstantInt's getSExtValue.
llvm-svn: 56700
|
| |
|
|
|
|
| |
disabled when frame address is desired. Also add support for depth > 0.
llvm-svn: 56683
|
| |
|
|
|
|
|
|
|
| |
its size). Adjust various lowering functions to
pass this info through from CallInst. Use it to
implement sseregparm returns on X86. Remove
X86_ssecall calling convention.
llvm-svn: 56677
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622
|