1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test
Chris Lattner 0e03e40a76 Teach inst combine to merge GEPs through PHIs. This is really
important because it is sinking the loads using the GEPs, but
not the GEPs themselves.  This triggers 647 times on 403.gcc
and makes the .s file much much nicer.  For example before:

        je      LBB1_87 ## bb78
LBB1_62:        ## bb77
        leal    84(%esi), %eax
LBB1_63:        ## bb79
        movl    (%eax), %eax
...
LBB1_87:        ## bb78
        movl    $0, 4(%esp)
        movl    %esi, (%esp)
        call    L_make_decl_rtl$stub
        jmp     LBB1_62 ## bb77


after:

        jne     LBB1_63 ## bb79
LBB1_62:        ## bb78
        movl    $0, 4(%esp)
        movl    %esi, (%esp)
        call    L_make_decl_rtl$stub
LBB1_63:        ## bb79
        movl    84(%esi), %eax

The input code was (and the GEPs are merged and
the PHI is now eliminated by instcombine):

        br i1 %tmp233, label %bb78, label %bb77
bb77:           
        %tmp234 = getelementptr %struct.tree_node* %t_addr.3, i32 0, i32 0, i32 22              
        br label %bb79
bb78:           
        call void @make_decl_rtl(%struct.tree_node* %t_addr.3, i8* null) nounwind
        %tmp235 = getelementptr %struct.tree_node* %t_addr.3, i32 0, i32 0, i32 22              
        br label %bb79
bb79:           
        %iftmp.12.0.in = phi %struct.rtx_def** [ %tmp235, %bb78 ], [ %tmp234, %bb77 ]           
        %iftmp.12.0 = load %struct.rtx_def** %iftmp.12.0.in             

llvm-svn: 60322
2008-12-01 02:34:36 +00:00
..
Analysis Extend the 'noalias' attribute to function return values. This is intended to 2008-11-24 03:41:24 +00:00
Archive
Assembler Fix the .ll grammar rules to allow any type before an 'i32', not just an 2008-10-15 06:16:45 +00:00
Bindings/Ocaml [PR2886] Ignore stderr from ocamlc since it prints unresolvable warnings on some platforms. 2008-10-22 12:41:54 +00:00
Bitcode
BugPoint
CodeGen Followup to r60283: optimize arbitrary width signed divisions as well 2008-11-30 06:35:39 +00:00
DebugInfo If there are two consecutive llvm.dbg.stoppoint calls then 2008-11-19 18:56:50 +00:00
ExecutionEngine
Feature Extend the 'noalias' attribute to function return values. This is intended to 2008-11-24 03:41:24 +00:00
FrontendAda
FrontendC Add test case for ptr annotation. 2008-11-12 16:12:27 +00:00
FrontendC++ Testcase for PR2917. 2008-10-29 18:06:20 +00:00
FrontendFortran Testcase for recent llvm-gcc fix 2008-11-03 14:43:31 +00:00
FrontendObjC Add test for rdar://6394879. 2008-11-26 02:21:12 +00:00
FrontendObjC++ This is an objective-c test, not an objective-c++ one. 2008-10-06 18:42:48 +00:00
Integer
lib Fix make check on Solaris 10/x86: the default grep is not GNU grep, same for as. 2008-10-21 17:21:32 +00:00
Linker Add global variable to test for consistency 2008-10-15 20:22:44 +00:00
LLVMC Since the old llvmc was removed, rename llvmc2 to llvmc. 2008-11-25 21:38:12 +00:00
Other Testcase for PR2894. 2008-10-15 22:34:34 +00:00
Scripts
TableGen Fun x86 encoding tricks: when adding an immediate value of 128, 2008-10-17 01:33:43 +00:00
Transforms Teach inst combine to merge GEPs through PHIs. This is really 2008-12-01 02:34:36 +00:00
Verifier Correct this error message. 2008-11-15 17:50:47 +00:00
Makefile Fix make check on Solaris 10/x86: the default grep is not GNU grep, same for as. 2008-10-21 17:21:32 +00:00
Makefile.tests
TestRunner.sh