oota-llvm.git
17 years agofix the stack alignment
Rafael Espindola [Fri, 6 Oct 2006 14:29:47 +0000 (14:29 +0000)]
fix the stack alignment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30766 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd support for calling functions that have double arguments
Rafael Espindola [Fri, 6 Oct 2006 12:50:22 +0000 (12:50 +0000)]
add support for calling functions that have double arguments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30765 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoStill need to support -mcpu=<> or cross compilation will fail. Doh.
Evan Cheng [Fri, 6 Oct 2006 09:17:41 +0000 (09:17 +0000)]
Still need to support -mcpu=<> or cross compilation will fail. Doh.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30764 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDo away with CPU feature list. Just use CPUID to detect MMX, SSE, SSE2, SSE3, and...
Evan Cheng [Fri, 6 Oct 2006 08:21:07 +0000 (08:21 +0000)]
Do away with CPU feature list. Just use CPUID to detect MMX, SSE, SSE2, SSE3, and 64-bit support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30763 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoIt appears the inline asm in GetCpuIDAndInfo() may clobbers some registers if it...
Evan Cheng [Fri, 6 Oct 2006 07:50:56 +0000 (07:50 +0000)]
It appears the inline asm in GetCpuIDAndInfo() may clobbers some registers if it isn't inlined (at < -O3). Force it to be inlined.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30762 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd an accessor
Chris Lattner [Fri, 6 Oct 2006 01:16:29 +0000 (01:16 +0000)]
add an accessor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30761 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMachineBasicBlock::splice was incorrectly updating parent pointers on
Chris Lattner [Fri, 6 Oct 2006 01:12:44 +0000 (01:12 +0000)]
MachineBasicBlock::splice was incorrectly updating parent pointers on
instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30760 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMake use of getStore().
Evan Cheng [Thu, 5 Oct 2006 23:01:46 +0000 (23:01 +0000)]
Make use of getStore().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30759 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd getStore() helper function to create ISD::STORE nodes.
Evan Cheng [Thu, 5 Oct 2006 22:57:11 +0000 (22:57 +0000)]
Add getStore() helper function to create ISD::STORE nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30758 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDon't crash if an MBB doesn't have an LLVM BB
Chris Lattner [Thu, 5 Oct 2006 21:40:14 +0000 (21:40 +0000)]
Don't crash if an MBB doesn't have an LLVM BB

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30757 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agouse a const ref for passing the vector to ArgumentLayout
Rafael Espindola [Thu, 5 Oct 2006 17:46:48 +0000 (17:46 +0000)]
use a const ref for passing the vector to ArgumentLayout

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30756 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoimplement a ArgumentLayout class to factor code common to LowerFORMAL_ARGUMENTS and...
Rafael Espindola [Thu, 5 Oct 2006 16:48:49 +0000 (16:48 +0000)]
implement a ArgumentLayout class to factor code common to LowerFORMAL_ARGUMENTS and LowerCALL
implement FMDRR
add support for f64 function arguments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30754 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAlias analysis code clean ups.
Jim Laskey [Thu, 5 Oct 2006 15:07:25 +0000 (15:07 +0000)]
Alias analysis code clean ups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30753 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a new SimplifyDemandedVectorElts method, which works similarly to
Chris Lattner [Thu, 5 Oct 2006 06:55:50 +0000 (06:55 +0000)]
add a new SimplifyDemandedVectorElts method, which works similarly to
SimplifyDemandedBits.  The idea is that some operations can be simplified if
not all of the computed elements are needed.  Some targets (like x86) have a
large number of intrinsics that operate on a single element, but pass other
elts through unmodified.  If those other elements are not needed, the
intrinsics can be simplified to scalar operations, and insertelement ops can
be removed.

This turns (f.e.):

ushort %Convert_sse(float %f) {
        %tmp = insertelement <4 x float> undef, float %f, uint 0                ; <<4 x float>> [#uses=1]
        %tmp10 = insertelement <4 x float> %tmp, float 0.000000e+00, uint 1             ; <<4 x float>> [#uses=1]
        %tmp11 = insertelement <4 x float> %tmp10, float 0.000000e+00, uint 2           ; <<4 x float>> [#uses=1]
        %tmp12 = insertelement <4 x float> %tmp11, float 0.000000e+00, uint 3           ; <<4 x float>> [#uses=1]
        %tmp28 = tail call <4 x float> %llvm.x86.sse.sub.ss( <4 x float> %tmp12, <4 x float> < float 1.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00 > )               ; <<4 x float>> [#uses=1]
        %tmp37 = tail call <4 x float> %llvm.x86.sse.mul.ss( <4 x float> %tmp28, <4 x float> < float 5.000000e-01, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00 > )               ; <<4 x float>> [#uses=1]
        %tmp48 = tail call <4 x float> %llvm.x86.sse.min.ss( <4 x float> %tmp37, <4 x float> < float 6.553500e+04, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00 > )               ; <<4 x float>> [#uses=1]
        %tmp59 = tail call <4 x float> %llvm.x86.sse.max.ss( <4 x float> %tmp48, <4 x float> zeroinitializer )          ; <<4 x float>> [#uses=1]
        %tmp = tail call int %llvm.x86.sse.cvttss2si( <4 x float> %tmp59 )              ; <int> [#uses=1]
        %tmp69 = cast int %tmp to ushort                ; <ushort> [#uses=1]
        ret ushort %tmp69
}

into:

ushort %Convert_sse(float %f) {
entry:
        %tmp28 = sub float %f, 1.000000e+00             ; <float> [#uses=1]
        %tmp37 = mul float %tmp28, 5.000000e-01         ; <float> [#uses=1]
        %tmp375 = insertelement <4 x float> undef, float %tmp37, uint 0         ; <<4 x float>> [#uses=1]
        %tmp48 = tail call <4 x float> %llvm.x86.sse.min.ss( <4 x float> %tmp375, <4 x float> < float 6.553500e+04, float undef, float undef, float undef > )           ; <<4 x float>> [#uses=1]
        %tmp59 = tail call <4 x float> %llvm.x86.sse.max.ss( <4 x float> %tmp48, <4 x float> < float 0.000000e+00, float undef, float undef, float undef > )            ; <<4 x float>> [#uses=1]
        %tmp = tail call int %llvm.x86.sse.cvttss2si( <4 x float> %tmp59 )              ; <int> [#uses=1]
        %tmp69 = cast int %tmp to ushort                ; <ushort> [#uses=1]
        ret ushort %tmp69
}

which improves codegen from:

_Convert_sse:
        movss LCPI1_0, %xmm0
        movss 4(%esp), %xmm1
        subss %xmm0, %xmm1
        movss LCPI1_1, %xmm0
        mulss %xmm0, %xmm1
        movss LCPI1_2, %xmm0
        minss %xmm0, %xmm1
        xorps %xmm0, %xmm0
        maxss %xmm0, %xmm1
        cvttss2si %xmm1, %eax
        andl $65535, %eax
        ret

to:

_Convert_sse:
        movss 4(%esp), %xmm0
        subss LCPI1_0, %xmm0
        mulss LCPI1_1, %xmm0
        movss LCPI1_2, %xmm1
        minss %xmm1, %xmm0
        xorps %xmm1, %xmm1
        maxss %xmm1, %xmm0
        cvttss2si %xmm0, %eax
        andl $65535, %eax
        ret

This is just a first step, it can be extended in many ways.  Testcase here:
Transforms/InstCombine/vec_demanded_elts.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30752 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonew testcase
Chris Lattner [Thu, 5 Oct 2006 06:51:54 +0000 (06:51 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30751 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd insertelement/extractelement helper ctors.
Chris Lattner [Thu, 5 Oct 2006 06:24:58 +0000 (06:24 +0000)]
Add insertelement/extractelement helper ctors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30750 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoLower some min/max idioms to minss/maxss when unsafe fp math is enabled.
Chris Lattner [Thu, 5 Oct 2006 04:11:26 +0000 (04:11 +0000)]
Lower some min/max idioms to minss/maxss when unsafe fp math is enabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30748 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCheck that jump tables wind up in the rodata section
Andrew Lenharth [Thu, 5 Oct 2006 03:27:52 +0000 (03:27 +0000)]
Check that jump tables wind up in the rodata section

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30747 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoremove JumpTableTextSection
Chris Lattner [Thu, 5 Oct 2006 03:14:23 +0000 (03:14 +0000)]
remove JumpTableTextSection

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30746 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDon't bother setting JumpTableTextSection, it is about to disappear
Chris Lattner [Thu, 5 Oct 2006 03:13:59 +0000 (03:13 +0000)]
Don't bother setting JumpTableTextSection, it is about to disappear

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30745 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoEmit pic jumptables to the same section that the function is emitted to,
Chris Lattner [Thu, 5 Oct 2006 03:13:28 +0000 (03:13 +0000)]
Emit pic jumptables to the same section that the function is emitted to,
allowing label differences to work.  This fixes CodeGen/X86/pic_jumptable.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30744 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoVerify that jump tables are emitted to the same section as the function is,
Chris Lattner [Thu, 5 Oct 2006 03:12:36 +0000 (03:12 +0000)]
Verify that jump tables are emitted to the same section as the function is,
when codegen'ing in pic mode.  This fixes a miscompilation of a switch stmt
in a template, as the template goes to a non-.text section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30743 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPass the MachineFunction into EmitJumpTableInfo.
Chris Lattner [Thu, 5 Oct 2006 03:01:21 +0000 (03:01 +0000)]
Pass the MachineFunction into EmitJumpTableInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30742 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoimplement and use getSectionForFunction
Chris Lattner [Thu, 5 Oct 2006 02:51:36 +0000 (02:51 +0000)]
implement and use getSectionForFunction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30741 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse getSectionForFunction.
Chris Lattner [Thu, 5 Oct 2006 02:49:23 +0000 (02:49 +0000)]
Use getSectionForFunction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30740 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse getSectionForFunction
Chris Lattner [Thu, 5 Oct 2006 02:48:40 +0000 (02:48 +0000)]
Use getSectionForFunction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30739 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agouse getSectionForFunction to decide which section to emit code into
Chris Lattner [Thu, 5 Oct 2006 02:47:13 +0000 (02:47 +0000)]
use getSectionForFunction to decide which section to emit code into

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30738 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement getSectionForFunction, use it when printing function body.
Chris Lattner [Thu, 5 Oct 2006 02:43:52 +0000 (02:43 +0000)]
Implement getSectionForFunction, use it when printing function body.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30737 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomove getSectionForFunction to AsmPrinter
Chris Lattner [Thu, 5 Oct 2006 02:42:47 +0000 (02:42 +0000)]
move getSectionForFunction to AsmPrinter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30736 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMove getSectionForFunction to AsmPrinter, change it to return a string.
Chris Lattner [Thu, 5 Oct 2006 02:42:20 +0000 (02:42 +0000)]
Move getSectionForFunction to AsmPrinter, change it to return a string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30735 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomove getSectionForFunction to AsmPrinter.
Chris Lattner [Thu, 5 Oct 2006 02:41:43 +0000 (02:41 +0000)]
move getSectionForFunction to AsmPrinter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30734 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoimplement DarwinTargetAsmInfo::getSectionForFunction, use it when outputting
Chris Lattner [Thu, 5 Oct 2006 00:35:50 +0000 (00:35 +0000)]
implement DarwinTargetAsmInfo::getSectionForFunction, use it when outputting
function bodies

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30733 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoGive TargetAsmInfo a virtual dtor, add a new getSectionForFunction method.
Chris Lattner [Thu, 5 Oct 2006 00:35:16 +0000 (00:35 +0000)]
Give TargetAsmInfo a virtual dtor, add a new getSectionForFunction method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30732 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoemit jump table before debug info
Chris Lattner [Thu, 5 Oct 2006 00:26:05 +0000 (00:26 +0000)]
emit jump table before debug info

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30731 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAlways emit the jump table after the function so it's part of the same 'atom'
Chris Lattner [Thu, 5 Oct 2006 00:24:46 +0000 (00:24 +0000)]
Always emit the jump table after the function so it's part of the same 'atom'
as the function body.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30730 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agogetFilename/getDirectory shouldn't abort if the global has no init. This
Chris Lattner [Wed, 4 Oct 2006 23:06:26 +0000 (23:06 +0000)]
getFilename/getDirectory shouldn't abort if the global has no init.  This
can happen on bugpoint reduced testcases f.e..

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30729 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix some typos that can cause a flag value to have more than one use.
Evan Cheng [Wed, 4 Oct 2006 22:23:53 +0000 (22:23 +0000)]
Fix some typos that can cause a flag value to have more than one use.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30727 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a static dtor issue
Chris Lattner [Wed, 4 Oct 2006 22:13:11 +0000 (22:13 +0000)]
Fix a static dtor issue

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30726 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix more static dtor issues
Chris Lattner [Wed, 4 Oct 2006 21:52:35 +0000 (21:52 +0000)]
Fix more static dtor issues

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30725 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix some more static dtor issues.
Chris Lattner [Wed, 4 Oct 2006 21:49:37 +0000 (21:49 +0000)]
Fix some more static dtor issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30724 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded option -disable-x86-shuffle-opti to disable X86 specific vector shuffle optimiz...
Evan Cheng [Wed, 4 Oct 2006 18:33:38 +0000 (18:33 +0000)]
Added option -disable-x86-shuffle-opti to disable X86 specific vector shuffle optimizations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30723 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFormating.
Evan Cheng [Wed, 4 Oct 2006 18:33:00 +0000 (18:33 +0000)]
Formating.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30722 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMore extensive alias analysis.
Jim Laskey [Wed, 4 Oct 2006 16:53:27 +0000 (16:53 +0000)]
More extensive alias analysis.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30721 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMore long term solution
Jim Laskey [Wed, 4 Oct 2006 10:40:15 +0000 (10:40 +0000)]
More long term solution

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30720 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPattern match min/max nodes when we have sse. This implements
Chris Lattner [Wed, 4 Oct 2006 06:57:07 +0000 (06:57 +0000)]
Pattern match min/max nodes when we have sse.  This implements
CodeGen/X86/scalar_sse_minmax.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30719 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agopattern match min/max nodes
Chris Lattner [Wed, 4 Oct 2006 06:56:02 +0000 (06:56 +0000)]
pattern match min/max nodes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30718 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a note :(
Chris Lattner [Wed, 4 Oct 2006 05:52:13 +0000 (05:52 +0000)]
add a note :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30717 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThis case isn't implemented yet. It seems unlikely to be needed, but if it
Chris Lattner [Wed, 4 Oct 2006 04:58:58 +0000 (04:58 +0000)]
This case isn't implemented yet.  It seems unlikely to be needed, but if it
ever is, we want to get an assert instead of silent bad codegen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30716 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoWork around for some problems with templates.
Jim Laskey [Wed, 4 Oct 2006 01:43:13 +0000 (01:43 +0000)]
Work around for some problems with templates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30715 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCombine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an
Evan Cheng [Wed, 4 Oct 2006 00:56:09 +0000 (00:56 +0000)]
Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an
extra operand to LOADX to specify the exact value extension type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30714 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse $( $| $) to represent alternatives in asm blocks instead of {|}. This
Chris Lattner [Tue, 3 Oct 2006 23:27:09 +0000 (23:27 +0000)]
Use $( $| $) to represent alternatives in asm blocks instead of {|}.  This
is needed to support targets where {|} aren't special symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30712 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix an obvious typo.
Evan Cheng [Tue, 3 Oct 2006 23:08:27 +0000 (23:08 +0000)]
Fix an obvious typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30711 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoBugfixes
Chris Lattner [Tue, 3 Oct 2006 20:19:23 +0000 (20:19 +0000)]
Bugfixes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30709 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPrint the MBB ID # along with the bb tag in the -print-machine-instrs output.
Chris Lattner [Tue, 3 Oct 2006 20:17:24 +0000 (20:17 +0000)]
Print the MBB ID # along with the bb tag in the -print-machine-instrs output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30708 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoADd a method
Chris Lattner [Tue, 3 Oct 2006 20:16:45 +0000 (20:16 +0000)]
ADd a method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30707 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoProvide a function that ensures MBB numbering is dense and inorder. This
Chris Lattner [Tue, 3 Oct 2006 19:18:57 +0000 (19:18 +0000)]
Provide a function that ensures MBB numbering is dense and inorder.  This
can be used by MachineFunctionPasses who need this property.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30706 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSimplify logic further.
Nick Lewycky [Tue, 3 Oct 2006 17:36:01 +0000 (17:36 +0000)]
Simplify logic further.
Ensure that we copy KnownProperties before calling visitBasicBlock, else
we may leak properties into blocks where they don't belong.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30705 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement floating point constants
Rafael Espindola [Tue, 3 Oct 2006 17:27:58 +0000 (17:27 +0000)]
Implement floating point constants

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30704 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix PR933 and CodeGen/X86/2006-10-02-BoolRetCrash.ll
Chris Lattner [Tue, 3 Oct 2006 17:18:42 +0000 (17:18 +0000)]
Fix PR933 and CodeGen/X86/2006-10-02-BoolRetCrash.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30703 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agotestcase for PR933
Chris Lattner [Tue, 3 Oct 2006 17:17:54 +0000 (17:17 +0000)]
testcase for PR933

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30702 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoclean up use of 'explicit'. This is PR934.
Chris Lattner [Tue, 3 Oct 2006 17:09:12 +0000 (17:09 +0000)]
clean up use of 'explicit'.  This is PR934.
Patch contributed by Kevin Sopp!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30701 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSimplify, now that predsimplify depends on break-crit-edges.
Nick Lewycky [Tue, 3 Oct 2006 15:19:11 +0000 (15:19 +0000)]
Simplify, now that predsimplify depends on break-crit-edges.
Fix SwitchInst where dest-block is the same as one of the cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30700 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMove break-crit-edges before the predicate simplifier. Allows us to
Nick Lewycky [Tue, 3 Oct 2006 14:52:23 +0000 (14:52 +0000)]
Move break-crit-edges before the predicate simplifier. Allows us to
optimize in more cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30699 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRevert previous patch. Still breaking things.
Evan Cheng [Tue, 3 Oct 2006 07:26:07 +0000 (07:26 +0000)]
Revert previous patch. Still breaking things.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30698 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix for PR929. The PHI nodes were being gone through for each instruction
Bill Wendling [Tue, 3 Oct 2006 07:20:20 +0000 (07:20 +0000)]
Fix for PR929. The PHI nodes were being gone through for each instruction
in a successor block for every block...resulting in some O(N^k) algorithm
which wasn't very good for performance. Calculating this information up
front and keeping it in a map made it much faster.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30697 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix PR932 and Analysis/Dominators/2006-10-02-BreakCritEdges.ll:
Chris Lattner [Tue, 3 Oct 2006 07:02:02 +0000 (07:02 +0000)]
Fix PR932 and Analysis/Dominators/2006-10-02-BreakCritEdges.ll:
The critical edge block dominates the dest block if the destblock dominates
all edges other than the one incoming from the critical edge.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30696 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoNew testcase for PR932
Chris Lattner [Tue, 3 Oct 2006 07:00:13 +0000 (07:00 +0000)]
New testcase for PR932

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30695 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThese don't have immediate operands.
Evan Cheng [Tue, 3 Oct 2006 06:55:11 +0000 (06:55 +0000)]
These don't have immediate operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30694 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMove DominatorTree to immediately follow DominatorTreeBase
Chris Lattner [Tue, 3 Oct 2006 05:24:56 +0000 (05:24 +0000)]
Move DominatorTree to immediately follow DominatorTreeBase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30693 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofix the names of the 64bit fp register
Rafael Espindola [Mon, 2 Oct 2006 19:30:56 +0000 (19:30 +0000)]
fix the names of the 64bit fp register
initial support for returning 64bit floating point numbers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30692 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDon't build the runtime library if LLVMGCC is not configured.
Reid Spencer [Mon, 2 Oct 2006 19:10:56 +0000 (19:10 +0000)]
Don't build the runtime library if LLVMGCC is not configured.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30691 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofix misleading warning
Chris Lattner [Mon, 2 Oct 2006 17:24:55 +0000 (17:24 +0000)]
fix misleading warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30690 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix misleading warning message
Chris Lattner [Mon, 2 Oct 2006 17:23:42 +0000 (17:23 +0000)]
Fix misleading warning message

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30689 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDebugging kruft
Jim Laskey [Mon, 2 Oct 2006 13:01:17 +0000 (13:01 +0000)]
Debugging kruft

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30688 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUpdate documentaion of node annotation (coloring) in viewGraph.
Jim Laskey [Mon, 2 Oct 2006 12:28:07 +0000 (12:28 +0000)]
Update documentaion of node annotation (coloring) in viewGraph.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30687 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd ability to annotate (color) nodes in a viewGraph.
Jim Laskey [Mon, 2 Oct 2006 12:26:53 +0000 (12:26 +0000)]
Add ability to annotate (color) nodes in a viewGraph.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30686 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFixme is already done
Chris Lattner [Sun, 1 Oct 2006 22:46:33 +0000 (22:46 +0000)]
Fixme is already done

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30685 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTeach globalsmodref-aa to track scalar pointer global variables which point
Chris Lattner [Sun, 1 Oct 2006 22:36:45 +0000 (22:36 +0000)]
Teach globalsmodref-aa to track scalar pointer global variables which point
to unaliased allocations.  Use this information to disambiguate pointers loaded
from them.  This is a very common case, so it's worthwhile to handle efficiently.

This implements Analysis/GlobalsModRef/indirect-global.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30684 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoNew testcase
Chris Lattner [Sun, 1 Oct 2006 22:35:45 +0000 (22:35 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30683 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a bug from r1.391 of this file, where we checked the size instead of
Chris Lattner [Sun, 1 Oct 2006 19:40:58 +0000 (19:40 +0000)]
Fix a bug from r1.391 of this file, where we checked the size instead of
the alignment when promoting allocations.  This implements
InstCombine/cast.ll:test32

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30682 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonew testcase, malloc should be promoted to [2 x double].
Chris Lattner [Sun, 1 Oct 2006 19:39:45 +0000 (19:39 +0000)]
new testcase, malloc should be promoted to [2 x double].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30681 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix debug output
Chris Lattner [Sat, 30 Sep 2006 23:32:50 +0000 (23:32 +0000)]
Fix debug output

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30680 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement SRA of heap allocations.
Chris Lattner [Sat, 30 Sep 2006 23:32:09 +0000 (23:32 +0000)]
Implement SRA of heap allocations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30679 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoOverride use_back in instruction/basicblock to provide more type information.
Chris Lattner [Sat, 30 Sep 2006 22:20:34 +0000 (22:20 +0000)]
Override use_back in instruction/basicblock to provide more type information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30678 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd a version of the globalvariable ctor that inserts at a specific location.
Chris Lattner [Sat, 30 Sep 2006 21:31:26 +0000 (21:31 +0000)]
Add a version of the globalvariable ctor that inserts at a specific location.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30677 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd some ifdef'd out debug info
Chris Lattner [Sat, 30 Sep 2006 19:40:30 +0000 (19:40 +0000)]
Add some ifdef'd out debug info

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30676 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoStacker doesn't build universal right.
Chris Lattner [Sat, 30 Sep 2006 00:24:20 +0000 (00:24 +0000)]
Stacker doesn't build universal right.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30675 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoNot needed.
Evan Cheng [Fri, 29 Sep 2006 22:05:10 +0000 (22:05 +0000)]
Not needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30674 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd floating point registers
Rafael Espindola [Fri, 29 Sep 2006 21:20:16 +0000 (21:20 +0000)]
add floating point registers
implement SINT_TO_FP

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30673 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMove CompileCommonOpts to the end of the list so that EXTRA_OPTIONS=-O0 will
Chris Lattner [Fri, 29 Sep 2006 18:47:13 +0000 (18:47 +0000)]
Move CompileCommonOpts to the end of the list so that EXTRA_OPTIONS=-O0 will
override the optimization level.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30672 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDefine this in the correct n/s
Chris Lattner [Fri, 29 Sep 2006 18:43:14 +0000 (18:43 +0000)]
Define this in the correct n/s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30671 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdjust this to the wonky syntax that GCC expects.
Chris Lattner [Fri, 29 Sep 2006 17:34:56 +0000 (17:34 +0000)]
Adjust this to the wonky syntax that GCC expects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30670 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoWrong directory.
Jim Laskey [Fri, 29 Sep 2006 17:31:45 +0000 (17:31 +0000)]
Wrong directory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30669 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMinor cleanups
Chris Lattner [Thu, 28 Sep 2006 23:45:00 +0000 (23:45 +0000)]
Minor cleanups

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30668 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoNow that ConstantBool::True/False are gone, we can modify Type.cpp to
Chris Lattner [Thu, 28 Sep 2006 23:38:07 +0000 (23:38 +0000)]
Now that ConstantBool::True/False are gone, we can modify Type.cpp to
eliminate its static dtors, without having code that depends on order of
initialization.  Eliminate static ctors/dtors from Type.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30667 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoEliminate ConstantBool::True and ConstantBool::False. Instead, provide
Chris Lattner [Thu, 28 Sep 2006 23:36:21 +0000 (23:36 +0000)]
Eliminate ConstantBool::True and ConstantBool::False.  Instead, provide
ConstantBool::getTrue() and ConstantBool::getFalse().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30666 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoEliminate ConstantBool::True and ConstantBool::False. Instead, provide
Chris Lattner [Thu, 28 Sep 2006 23:35:22 +0000 (23:35 +0000)]
Eliminate ConstantBool::True and ConstantBool::False.  Instead, provide
ConstantBool::getTrue() and ConstantBool::getFalse().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30665 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoEliminate ConstantBool::True and ConstantBool::False. Instead, provideConstantBool...
Chris Lattner [Thu, 28 Sep 2006 23:34:49 +0000 (23:34 +0000)]
Eliminate ConstantBool::True and ConstantBool::False.  Instead, provideConstantBool::getTrue() and ConstantBool::getFalse().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30664 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoupdate comments
Chris Lattner [Thu, 28 Sep 2006 23:33:12 +0000 (23:33 +0000)]
update comments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30663 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agowrap long lines
Chris Lattner [Thu, 28 Sep 2006 23:32:43 +0000 (23:32 +0000)]
wrap long lines

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30662 91177308-0d34-0410-b5e6-96231b3b80d8