Commit Graph

31480 Commits

Author SHA1 Message Date
Devang Patel b28a391a8d More cosmetic changes.
llvm-svn: 35820
2007-04-09 16:21:29 +00:00
Devang Patel 88bc2c6f82 Only cosmetic changes. Zero functionality Change.
llvm-svn: 35819
2007-04-09 16:11:48 +00:00
Reid Spencer 019c8869ed For PR1146:
* Add ParamAttrList pointers to Function and CallInst.
* Move the implementation of ParamAttrList from Type.cpp to Function.cpp

llvm-svn: 35818
2007-04-09 15:01:12 +00:00
Jeff Cohen 0475f3b4e9 Unbreak VC++ build.
llvm-svn: 35817
2007-04-09 14:32:59 +00:00
Anton Korobeynikov 506eaf7915 Next stage into switch lowering refactoring
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
2007-04-09 12:31:58 +00:00
Chris Lattner d112a031ea Convert ImmediateDominators::DFSPass from being recursive to being iterative.
llvm-svn: 35815
2007-04-09 06:44:42 +00:00
Reid Spencer 71b79e3d99 For PR1146:
Adapt handling of parameter attributes to use the new ParamAttrsList class.

llvm-svn: 35814
2007-04-09 06:17:21 +00:00
Reid Spencer f51a7050dd Regenerate
llvm-svn: 35813
2007-04-09 06:16:21 +00:00
Reid Spencer 4d4d3f9682 For PR1146:
Adapt handling of parameter attributes to use ParamAttrsList class.

llvm-svn: 35812
2007-04-09 06:15:59 +00:00
Reid Spencer 52796e819f For PR1146:
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
2007-04-09 06:14:31 +00:00
Reid Spencer e76289b8ea For PR1146:
Simplify construction of FunctionType to use default arguments.

llvm-svn: 35810
2007-04-09 06:12:07 +00:00
Reid Spencer 26d9ff65a3 For PR1146:
Parameter attributes can now be defaulted for intrinsics.

llvm-svn: 35809
2007-04-09 06:11:23 +00:00
Reid Spencer 1517de317a For PR1146:
Adjust writing of parameter attributes to use ParamAttrList class.

llvm-svn: 35808
2007-04-09 06:10:42 +00:00
Chris Lattner 0a5677d912 minor cleanups
llvm-svn: 35807
2007-04-09 06:10:06 +00:00
Reid Spencer 238633f17e For PR1146:
Move parameter attributes functionality to ParamAttrsList class.

llvm-svn: 35806
2007-04-09 06:07:52 +00:00
Reid Spencer 1ba12951e4 For PR1146:
Remove the handling of ParameterAttributes from FunctionType as they are
their own object defined in ParameterAttributes.h now.

llvm-svn: 35805
2007-04-09 06:06:57 +00:00
Chris Lattner 7451e4d6a1 move a bunch of register constraints from being handled by
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
2007-04-09 05:49:22 +00:00
Chris Lattner 2b6b4eb471 implement support for CodeGen/X86/inline-asm-x-scalar.ll:test3 - i32/i64 values
used with x constraints.

llvm-svn: 35803
2007-04-09 05:31:48 +00:00
Chris Lattner 7b2decfa0a implement CodeGen/X86/inline-asm-x-scalar.ll:test3
llvm-svn: 35802
2007-04-09 05:31:20 +00:00
Chris Lattner ea1369275b add another test
llvm-svn: 35801
2007-04-09 05:26:48 +00:00
Chris Lattner 18d6718e78 add some assertions
llvm-svn: 35800
2007-04-09 05:23:13 +00:00
Chris Lattner 590ed5e5b7 implement CodeGen/X86/inline-asm-x-scalar.ll
llvm-svn: 35799
2007-04-09 05:11:28 +00:00
Chris Lattner 8a06ca02d8 The x constraint allows scalar FP values as well as vectors.
llvm-svn: 35798
2007-04-09 05:11:03 +00:00
Owen Anderson 6978893a8f Move isReachableFromEntry out of line to avoid an unnecessary #include
llvm-svn: 35797
2007-04-09 04:07:36 +00:00
Chris Lattner a2e2e5640a Fix a bug that caused alignment information to occasionally get stripped off
of an allocation instruction when writing to bytecode.

llvm-svn: 35796
2007-04-09 03:37:36 +00:00
Reid Spencer 7ae03fc5fb Regenerate
llvm-svn: 35795
2007-04-09 01:56:05 +00:00
Reid Spencer bef90fe7a7 Drop the implementation keyword.
llvm-svn: 35794
2007-04-09 01:55:42 +00:00
Reid Spencer bdcf9d6f08 Chris convinced me that the default size of the SmallVector (2) was too
small.  Since it doesn't cost much to have 2 more (8 bytes), but not having
them would require a malloc as soon as the third one is needed. Setting
the default to 4 delays the malloc until the 5th parameter attribute.

llvm-svn: 35793
2007-04-09 01:53:54 +00:00
Chris Lattner a87c9f6114 Fix PR1304 and Transforms/InstCombine/2007-04-08-SingleEltVectorCrash.ll
llvm-svn: 35792
2007-04-09 01:37:55 +00:00
Chris Lattner e04c652f5d new testcase for PR1304
llvm-svn: 35791
2007-04-09 01:37:35 +00:00
Reid Spencer 389decb3a4 Remove redundancy.
llvm-svn: 35790
2007-04-09 01:26:02 +00:00
Chris Lattner f73d215023 Fix a bug introduced with my previous patch, where it didn't correctly handle
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
2007-04-09 01:19:33 +00:00
Chris Lattner 4ca9cbb170 Eliminate useless insertelement instructions. This implements
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
2007-04-09 01:11:16 +00:00
Chris Lattner 418bf4eb1c new testcase for PR1286
llvm-svn: 35787
2007-04-09 01:10:13 +00:00
Owen Anderson ae39ca037a Cleanup some from my DomSet-removal changes. Add a new
isReachableFromEntry
test to ETForest to factor a common test out of code.

llvm-svn: 35786
2007-04-09 00:52:49 +00:00
Chris Lattner 0df5357436 Fix CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll and PR1308:
some instructions can have multiple frame indices in them.  If this happens,
rewrite all of them.

llvm-svn: 35785
2007-04-09 00:46:10 +00:00
Chris Lattner e505615531 new testcase for PR1308
llvm-svn: 35784
2007-04-09 00:45:42 +00:00
Chris Lattner b49917da92 Fix PR1316
llvm-svn: 35783
2007-04-09 00:33:58 +00:00
Reid Spencer 8b73a719cf No functional change, this is just easier to read and debug.
llvm-svn: 35782
2007-04-08 23:58:41 +00:00
Reid Spencer db77ca7cc1 Fix a typo.
llvm-svn: 35781
2007-04-08 22:50:29 +00:00
Reid Spencer f71c15bda6 Implement more feedback:
* Allow attributes to be added and removed singly or jointly so that in
  the future something like -pruneh can manipulate them more easily.
* Move functions generally only useful for LLVM internals to the end of
  the accessors list instead of the beginning.

llvm-svn: 35780
2007-04-08 22:30:27 +00:00
Chris Lattner e55ecfb870 Fix for CodeGen/X86/2007-04-08-InlineAsmCrash.ll and PR1314
llvm-svn: 35779
2007-04-08 22:23:26 +00:00
Chris Lattner d733c17fce testcase for PR1314
llvm-svn: 35778
2007-04-08 22:22:53 +00:00
Reid Spencer 0c19c91961 Implement review feedback.
llvm-svn: 35777
2007-04-08 22:05:44 +00:00
Nick Lewycky ecff285e49 Fix this testcase to fail if the bug were reintroduced.
llvm-svn: 35776
2007-04-08 21:49:13 +00:00
Owen Anderson fe507270ac Remove DomSet completely. This concludes work on PR1171.
llvm-svn: 35775
2007-04-08 21:30:05 +00:00
Jeff Cohen 5f2e025c78 Track new header file.
llvm-svn: 35774
2007-04-08 21:19:52 +00:00
Reid Spencer 8ee9a827e7 Make sure temporary data is not used past its life span.
llvm-svn: 35773
2007-04-08 20:10:14 +00:00
Reid Spencer 69e6062f31 Make TempDir a PathWithStatus so we don't have to cast it to one.
llvm-svn: 35772
2007-04-08 20:08:01 +00:00
Reid Spencer 5fb6ee9d6b Avoid temporary construction and potential for corrupted data access.
llvm-svn: 35771
2007-04-08 20:06:05 +00:00