| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
happen to be an entry, in such case, it is not a good idea to
insert new block before entry.
Also fix typo in assertion check.
llvm-svn: 35833
|
|
|
|
|
|
| |
multiple copies of the function into the Function*.
llvm-svn: 35831
|
|
|
|
| |
llvm-svn: 35829
|
|
|
|
|
|
|
|
|
|
| |
Fixes unexpected failures on FreeBSD/amd64 of:
CFrontend/2005-09-24-BitFieldCrash.c:
CFrontend/2007-02-04-EmptyStruct.c:
CFrontend/2007-03-26-ZeroWidthBitfield.c:
CodeGen/Generic/2005-10-18-ZeroSizeStackObject.ll:
llvm-svn: 35828
|
|
|
|
|
|
| |
be in the opt tool.
llvm-svn: 35827
|
|
|
|
| |
llvm-svn: 35825
|
|
|
|
|
|
|
|
|
|
| |
* Add ParamAttrs to InvokeInst class too.
* Make sure all initializes of ParamAttrs in CallInst and InvokeInst are 0
* Destruct the ParamAttrs in Call/Invoke destructors to avoid memory
leaks. This will change when ParamAttrsList is uniquified but needs to
be correct until then.
llvm-svn: 35824
|
|
|
|
| |
llvm-svn: 35823
|
|
|
|
| |
llvm-svn: 35822
|
|
|
|
|
|
| |
Handle Argument or Undef as an incoming PHI value.
llvm-svn: 35821
|
|
|
|
| |
llvm-svn: 35820
|
|
|
|
| |
llvm-svn: 35819
|
|
|
|
|
|
|
| |
* Add ParamAttrList pointers to Function and CallInst.
* Move the implementation of ParamAttrList from Type.cpp to Function.cpp
llvm-svn: 35818
|
|
|
|
| |
llvm-svn: 35817
|
|
|
|
|
|
|
|
|
|
| |
1. Fix some bugs in the jump table lowering threshold
2. Implement much better metric for optimal pivot selection
3. Tune thresholds for different lowering methods
4. Implement shift-and trick for lowering small (<machine word
length) cases with few destinations. Good testcase will follow.
llvm-svn: 35816
|
|
|
|
| |
llvm-svn: 35815
|
|
|
|
|
|
| |
Adapt handling of parameter attributes to use the new ParamAttrsList class.
llvm-svn: 35814
|
|
|
|
| |
llvm-svn: 35813
|
|
|
|
|
|
|
|
| |
Use ParamAttrsList for writing parameter attributes. Since they are sparse
now, we also write them sparsely (saves a few bytes). Unfortunately, this
is a bytecode file format change.
llvm-svn: 35811
|
|
|
|
|
|
| |
Simplify construction of FunctionType to use default arguments.
llvm-svn: 35810
|
|
|
|
|
|
| |
Parameter attributes can now be defaulted for intrinsics.
llvm-svn: 35809
|
|
|
|
|
|
| |
Adjust writing of parameter attributes to use ParamAttrList class.
llvm-svn: 35808
|
|
|
|
| |
llvm-svn: 35807
|
|
|
|
|
|
| |
Move parameter attributes functionality to ParamAttrsList class.
llvm-svn: 35806
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
getRegClassForInlineAsmConstraint to being handled by
getRegForInlineAsmConstraint. This allows us to let the llvm register allocator
allocate, which gives us better code. For example, X86/2007-01-29-InlineAsm-ir.ll
used to compile to:
_run_init_process:
subl $4, %esp
movl %ebx, (%esp)
xorl %ebx, %ebx
movl $11, %eax
movl %ebx, %ecx
movl %ebx, %edx
# InlineAsm Start
push %ebx ; movl %ebx,%ebx ; int $0x80 ; pop %ebx
# InlineAsm End
Now we get:
_run_init_process:
xorl %ecx, %ecx
movl $11, %eax
movl %ecx, %edx
# InlineAsm Start
push %ebx ; movl %ecx,%ebx ; int $0x80 ; pop %ebx
# InlineAsm End
llvm-svn: 35804
|
|
|
|
|
|
| |
used with x constraints.
llvm-svn: 35803
|
|
|
|
| |
llvm-svn: 35802
|
|
|
|
| |
llvm-svn: 35800
|
|
|
|
| |
llvm-svn: 35799
|
|
|
|
| |
llvm-svn: 35797
|
|
|
|
|
|
| |
of an allocation instruction when writing to bytecode.
llvm-svn: 35796
|
|
|
|
| |
llvm-svn: 35795
|
|
|
|
| |
llvm-svn: 35794
|
|
|
|
| |
llvm-svn: 35792
|
|
|
|
|
|
|
| |
instructions which replace themselves when FI's are rewritten (common on ppc).
This fixes CodeGen/PowerPC/2006-10-17-ppc64-alloca.ll
llvm-svn: 35789
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Transforms/InstCombine/vec_insertelt.ll and fixes PR1286.
We now compile the code from that bug into:
_foo:
movl 4(%esp), %eax
movdqa (%eax), %xmm0
movl 8(%esp), %ecx
psllw (%ecx), %xmm0
movdqa %xmm0, (%eax)
ret
instead of:
_foo:
subl $4, %esp
movl %ebp, (%esp)
movl %esp, %ebp
movl 12(%ebp), %eax
movdqa (%eax), %xmm0
#IMPLICIT_DEF %eax
pinsrw $2, %eax, %xmm0
xorl %ecx, %ecx
pinsrw $3, %ecx, %xmm0
pinsrw $4, %eax, %xmm0
pinsrw $5, %ecx, %xmm0
pinsrw $6, %eax, %xmm0
pinsrw $7, %ecx, %xmm0
movl 8(%ebp), %eax
movdqa (%eax), %xmm1
psllw %xmm0, %xmm1
movdqa %xmm1, (%eax)
movl %ebp, %esp
popl %ebp
ret
woo :)
llvm-svn: 35788
|
|
|
|
|
|
|
| |
isReachableFromEntry
test to ETForest to factor a common test out of code.
llvm-svn: 35786
|
|
|
|
|
|
|
| |
some instructions can have multiple frame indices in them. If this happens,
rewrite all of them.
llvm-svn: 35785
|
|
|
|
| |
llvm-svn: 35783
|
|
|
|
| |
llvm-svn: 35782
|
|
|
|
| |
llvm-svn: 35779
|
|
|
|
| |
llvm-svn: 35775
|
|
|
|
| |
llvm-svn: 35773
|
|
|
|
| |
llvm-svn: 35768
|
|
|
|
| |
llvm-svn: 35765
|
|
|
|
| |
llvm-svn: 35763
|
|
|
|
|
|
|
|
| |
constants.
Add a new xform to simplify (A&B)|(~A&C). THis implements InstCombine/or2.ll:test1
llvm-svn: 35760
|
|
|
|
|
|
| |
fwrite optimizer.
llvm-svn: 35758
|
|
|
|
| |
llvm-svn: 35757
|
|
|
|
| |
llvm-svn: 35756
|