Commit Graph

27282 Commits

Author SHA1 Message Date
Chris Lattner
0ccb500fa7 Compile CodeGen/PowerPC/fp-branch.ll to:
_intcoord_cond_next55:
LBB1_3: ;cond_next55
        lis r2, ha16(LCPI1_0)
        lfs f0, lo16(LCPI1_0)(r2)
        fcmpu cr0, f1, f0
        blt cr0, LBB1_2 ;cond_next62.exitStub
LBB1_1: ;bb72.exitStub
        li r3, 1
        blr
LBB1_2: ;cond_next62.exitStub
        li r3, 0
        blr

instead of:

_intcoord_cond_next55:
LBB1_3: ;cond_next55
        lis r2, ha16(LCPI1_0)
        lfs f0, lo16(LCPI1_0)(r2)
        fcmpu cr0, f1, f0
        bge cr0, LBB1_1 ;bb72.exitStub
LBB1_4: ;cond_next55
        lis r2, ha16(LCPI1_0)
        lfs f0, lo16(LCPI1_0)(r2)
        fcmpu cr0, f1, f0
        bnu cr0, LBB1_2 ;cond_next62.exitStub
LBB1_1: ;bb72.exitStub
        li r3, 1
        blr
LBB1_2: ;cond_next62.exitStub
        li r3, 0
        blr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31330 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 23:06:00 +00:00
Chris Lattner
04ffebc798 This test should compile down to one comparison, not two.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31329 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 23:05:16 +00:00
Chris Lattner
df19f27d03 look through isunordered to inline it into branch blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31328 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 22:37:42 +00:00
Evan Cheng
63af319c4b Nuke dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31327 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 21:53:31 +00:00
Chris Lattner
22aaf1d61c allow the address of a global to be used with the "i" constraint when in
-static mode.  This implements PR882.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31326 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 20:13:11 +00:00
Chris Lattner
0d92499455 implement the 'c' inline asm modifier character
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31325 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 20:12:30 +00:00
Chris Lattner
edc28277cc new testcase for PR882
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31324 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 20:11:14 +00:00
Chris Lattner
efa46ce87b handle global address constant sdnodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31323 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 20:01:56 +00:00
Andrew Lenharth
956a431930 Let us play simplify the td file (and fix a few missed sub and mul patterns).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31322 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 19:52:12 +00:00
Andrew Lenharth
a54f6b16f9 make one giant add and sub tester
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31321 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 19:50:55 +00:00
Chris Lattner
1a60aa7bc1 handle "st" as "st(0)"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31320 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 19:42:44 +00:00
Chris Lattner
53069fbbae TargetLowering::isOperandValidForConstraint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31319 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 19:41:18 +00:00
Chris Lattner
dba1aeedd8 Change the prototype for TargetLowering::isOperandValidForConstraint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31318 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 19:40:43 +00:00
Chris Lattner
cbea67f55b generalize the fix for PR977 to also fix
Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31317 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 18:56:48 +00:00
Chris Lattner
237f0de7d5 another testcase for PR977
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31316 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 18:56:24 +00:00
Chris Lattner
1753faee81 Fix PR977 and Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31315 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 17:52:18 +00:00
Chris Lattner
c176fa3d37 testcase for PR977
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31314 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 17:51:36 +00:00
Andrew Lenharth
f81173f70e Add all that branch mangling niftiness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31313 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 16:49:55 +00:00
Rafael Espindola
b191e0ab51 add support for calling functions when the caller has variable sized objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31312 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 13:03:26 +00:00
Anton Korobeynikov
ab4022f196 1. Clean up code due to changes in SwitchTo*Section(2)
2. Added partial debug support for mingw\cygwin targets (the same as
   Linux\ELF). Please note, that currently mingw\cygwin uses 'stabs' format
   for storing debug info by default, thus many (runtime) libraries has
   this information included. These formats shouldn't be mixed in one binary
   ('stabs' & 'DWARF'), otherwise binutils tools will be confused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31311 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 08:31:24 +00:00
Chris Lattner
d03f1581c8 Turn an assert into an error message. This is commonly triggered when
we don't support a specific constraint yet.  When this happens, print the
unsupported constraint.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31310 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 07:33:13 +00:00
Chris Lattner
94b6d6eb6b add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31309 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 06:26:10 +00:00
Chris Lattner
406dd6a768 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31308 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 06:25:13 +00:00
Chris Lattner
c160744e92 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31307 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 06:15:14 +00:00
Anton Korobeynikov
b52cf1f194 Unbreaking static ctors patch.
Defaulting second arguments of SwitchTo*Section, this should make things
somehow clearer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31306 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 06:11:06 +00:00
Evan Cheng
d063189c09 Fix a typo which can break jumptables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31305 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 02:31:00 +00:00
Reid Spencer
090ac3641d Make this compile again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31304 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 01:45:56 +00:00
Evan Cheng
2e323aa09d Apply Aton's LLVM patch for PR973: Linux ctors / dtors support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31303 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 01:26:55 +00:00
Reid Spencer
0de0c5da42 Fix a problem introduced by a last-minute change (logic negation).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31302 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 23:34:32 +00:00
Chris Lattner
1d75400e2e fix miscompilation of llvm.isunordered, where we branched on the opposite
condition.  This fixes miscompilation of Olden/bh and many others.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31301 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 23:02:25 +00:00
Reid Spencer
6ac310d5e9 Don't mislead readers by claiming a variable is defaulted to false when
the default is actually true.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31300 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 22:46:49 +00:00
Reid Spencer
02b8511364 Add debug support for X86/ELF targets (Linux). This allows llvm-gcc4
generated object modules to be debugged with gdb. Hopefully this helps
pre-release debugging.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31299 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 22:32:30 +00:00
Chris Lattner
6ce644392e fix wonky indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31298 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 22:27:23 +00:00
Devang Patel
b79a59dcfc Update comment. Valid option is -debug-pass=Structures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31297 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 19:25:54 +00:00
Jim Laskey
a9c83fe5e1 Switch abbreviations to use the folding set.a.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31296 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 15:59:54 +00:00
Jim Laskey
6519546eda Simplify DwarfWriter header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31295 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 13:35:07 +00:00
Evan Cheng
c35497fc2a All targets expand BR_JT for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31294 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 08:02:39 +00:00
Evan Cheng
3d4ce11085 Lower jumptable to BR_JT. The legalizer can lower it to a BRIND or let the target custom lower it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31293 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 08:00:44 +00:00
Evan Cheng
c41cd9c391 Added a new SDNode type: BR_JT for jumptable branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31292 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 07:59:36 +00:00
Chris Lattner
55d7244f69 fix this regtest
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31291 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 05:24:03 +00:00
Chris Lattner
09b6ac92d8 add a new form of insert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31290 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 05:07:51 +00:00
Chris Lattner
dd94c8d6b2 Add SmallString a (currently) minimal class that adapts SmallVector to be
more string-like.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31289 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 03:39:20 +00:00
Chris Lattner
6c1645ce7d add a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31288 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 03:14:15 +00:00
Chris Lattner
463c4a1ae9 add newline at end of file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31287 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29 23:47:01 +00:00
Chris Lattner
23d7b36117 add a highly efficient hash table that is specialized for mapping C strings
to some other type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31286 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29 23:42:03 +00:00
Chris Lattner
9f617d64c5 Add a new llvm::Allocator abstraction, which will be used by a container
I'm about to add.  This is similar to, but necessarily different than, the
STL allocator class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31285 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29 22:08:03 +00:00
Chris Lattner
120bc21576 Fix SimplifyCFG/2006-10-29-InvokeCrash.ll, a crash compiling QT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31284 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29 21:21:20 +00:00
Chris Lattner
7c94454c56 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31283 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29 21:20:56 +00:00
Chris Lattner
6b0e3f8907 Make CanFallThrough more intelligent (so it can handle blocks with (e.g.) no
successors), and make island block movement more general.

This compiles CodeGen/X86/2006-04-27-ISelFoldingBug.ll to:

_loadAndRLEsource_no_exit_2E_1_label_2E_0:
        subl $8, %esp
        movl %esi, 4(%esp)
        movl %ebx, (%esp)
        movl 16(%esp), %eax
        movl 12(%esp), %ecx
LBB1_3: #label.0
        movl _last, %edx
        movl %edx, %esi
        incl %esi
        movl %esi, _last
        movl %ecx, %ebx
        # TRUNCATE movb %bl, %bl
        movl _block, %esi
        movb %bl, 1(%esi,%edx)
        cmpl %eax, _last
        jge LBB1_2      #codeRepl5.exitStub
LBB1_4: #label.0
        cmpl $257, %ecx
        je LBB1_2       #codeRepl5.exitStub
LBB1_1: #label.0.no_exit.1_crit_edge.exitStub
        movl $1, %eax
        movl (%esp), %ebx
        movl 4(%esp), %esi
        addl $8, %esp
        ret
LBB1_2: #codeRepl5.exitStub
        xorl %eax, %eax
        movl (%esp), %ebx
        movl 4(%esp), %esi
        addl $8, %esp
        ret

instead of:

_loadAndRLEsource_no_exit_2E_1_label_2E_0:
        subl $8, %esp
        movl %esi, 4(%esp)
        movl %ebx, (%esp)
        movl 16(%esp), %eax
        movl 12(%esp), %ecx
        jmp LBB1_3      #label.0
LBB1_1: #label.0.no_exit.1_crit_edge.exitStub
        movl $1, %eax
        movl (%esp), %ebx
        movl 4(%esp), %esi
        addl $8, %esp
        ret
LBB1_2: #codeRepl5.exitStub
        xorl %eax, %eax
        movl (%esp), %ebx
        movl 4(%esp), %esi
        addl $8, %esp
        ret
LBB1_3: #label.0
        movl _last, %edx
        movl %edx, %esi
        incl %esi
        movl %esi, _last
        movl %ecx, %ebx
        # TRUNCATE movb %bl, %bl
        movl _block, %esi
        movb %bl, 1(%esi,%edx)
        cmpl %eax, _last
        jge LBB1_2      #codeRepl5.exitStub
LBB1_4: #label.0
        cmpl $257, %ecx
        jne LBB1_1      #label.0.no_exit.1_crit_edge.exitStub
        jmp LBB1_2      #codeRepl5.exitStub

... which is much better layout :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31282 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29 21:05:41 +00:00
Chris Lattner
6a586c8d9a fix Generic/2006-10-29-Crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31281 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29 21:01:20 +00:00