Nate Begeman [Wed, 6 Apr 2005 21:13:14 +0000 (21:13 +0000)]
Teach ExpandShift how to handle shifts by a constant. This allows targets
like PowerPC to codegen long shifts in many fewer instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21122
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 6 Apr 2005 20:59:59 +0000 (20:59 +0000)]
fix copy/paste errors, and add imm support to SxADDQ and SxSUBQ
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21121
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Apr 2005 20:59:35 +0000 (20:59 +0000)]
Fix SingleSource/Regression/C/2005-05-06-LongLongSignedShift.c, we were not
properly sign extending the top of the result of a 64-bit shift right by
a constant > 32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21120
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 6 Apr 2005 20:59:03 +0000 (20:59 +0000)]
simplified
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21119
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 6 Apr 2005 20:39:17 +0000 (20:39 +0000)]
added first alpha codegen regression test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21117
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 6 Apr 2005 20:25:34 +0000 (20:25 +0000)]
Added Nate's div by constant stuff, also scaled operations!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21116
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Apr 2005 19:45:39 +0000 (19:45 +0000)]
Fix a namespace issue, reported by Vladimir Merzliakov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21115
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 6 Apr 2005 09:55:17 +0000 (09:55 +0000)]
steal sampo's div-by-constant-power-of-2 stuff
thanks sampo!!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21113
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 6 Apr 2005 09:54:09 +0000 (09:54 +0000)]
add fms instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21112
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 6 Apr 2005 06:44:57 +0000 (06:44 +0000)]
Fixed version of optimized integer divide is now fixed. Calculate the
quotient, not the remainder. Also, make sure to remove the old div operand
from the ExprMap and let SelectExpr insert the new one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21111
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 6 Apr 2005 06:18:36 +0000 (06:18 +0000)]
lie a bit and say that r1/r12 (GP/SP) _aren't_ callee-save, as we take
care of this ourselves
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21110
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 6 Apr 2005 06:17:54 +0000 (06:17 +0000)]
make sure 'special' registers don't get allocated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21109
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Apr 2005 04:21:29 +0000 (04:21 +0000)]
document these nodes, as they are nonobvious
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21108
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Apr 2005 04:21:07 +0000 (04:21 +0000)]
Add (untested) support for MULHS and MULHU.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21107
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Apr 2005 04:19:22 +0000 (04:19 +0000)]
add signed versions of the extra precision multiplies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21106
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 6 Apr 2005 03:36:33 +0000 (03:36 +0000)]
Turn off the div -> mul optimization until it works correctly 100% of the
time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21105
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 6 Apr 2005 00:25:27 +0000 (00:25 +0000)]
Add support for MULHS and MULHU nodes
Have LegalizeDAG handle SREM and UREM for us
Codegen SDIV and UDIV by constant as a multiply by magic constant instead
of integer divide, which is very slow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21104
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 6 Apr 2005 00:23:54 +0000 (00:23 +0000)]
Expand SREM and UREM for targets that claim not to have them, like PowerPC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21103
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 5 Apr 2005 22:36:56 +0000 (22:36 +0000)]
Add MULHU and MULHS nodes for the high part of an (un)signed 32x32=64b
multiply.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21102
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 5 Apr 2005 20:51:46 +0000 (20:51 +0000)]
added lowerargs support for varargs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21101
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 5 Apr 2005 18:19:50 +0000 (18:19 +0000)]
Behold, rlwinm with certain immediate arguments is printed as the much more
readable slwi or srwi (shift left/right word immediate).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21099
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 5 Apr 2005 17:32:30 +0000 (17:32 +0000)]
Fix cut & paste errors (32->64), and codegen float->int more optimally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21098
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 5 Apr 2005 16:36:44 +0000 (16:36 +0000)]
Updated to use dep analyzer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21097
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 5 Apr 2005 08:51:15 +0000 (08:51 +0000)]
Remove 64 bit simple ISel, it never worked correctly
Add initial (buggy) implementation of 64 bit pattern ISel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21096
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 5 Apr 2005 04:32:16 +0000 (04:32 +0000)]
Back out the previous change to SelectBranchCC, since there are cases it
could miscompile. A correct solution will be found in the near future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21095
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 5 Apr 2005 04:22:58 +0000 (04:22 +0000)]
Rename canUseAsImmediateForOpcode to getImmediateForOpcode to better
indicate that it is not a boolean function.
Properly emit the pseudo instruction for conditional branch, so that we
can fix up conditional branches whose displacements are too large.
Reserve the right amount of opcode space for said pseudo instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21094
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Apr 2005 01:12:03 +0000 (01:12 +0000)]
do not crash when using -debug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21092
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 5 Apr 2005 00:15:08 +0000 (00:15 +0000)]
Implement SDIV by power of 2 as srawi/addze rather than load imm, divw
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21091
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 4 Apr 2005 23:40:36 +0000 (23:40 +0000)]
Pattern match fp mul-add, mul-sub, neg-mul-add, and neg-mul-sub
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21090
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 4 Apr 2005 23:01:51 +0000 (23:01 +0000)]
Add support for multiply-add, multiply-sub, and their negated versions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21089
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Apr 2005 22:23:21 +0000 (22:23 +0000)]
do not dereference an extra layer of pointers to determine if an external
call can modify a memory location. This fixes
test/Regression/Analysis/Andersens/modreftest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Apr 2005 22:22:30 +0000 (22:22 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21087
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 4 Apr 2005 22:17:48 +0000 (22:17 +0000)]
Make sure that arg regs used by the call instruction are marked as such, so
that regalloc doesn't cleverly reuse early arg regs loading later arg regs.
This fixes almost all outstanding failures in the pattern isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21086
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 4 Apr 2005 21:48:13 +0000 (21:48 +0000)]
Remove unnecessary register copy now that regalloc is fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21085
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Apr 2005 21:35:34 +0000 (21:35 +0000)]
Make sure to notice that explicit physregs are used in the function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21084
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 4 Apr 2005 09:09:00 +0000 (09:09 +0000)]
i1 loads should also be from the low byte of the argument word.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21077
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 4 Apr 2005 06:52:38 +0000 (06:52 +0000)]
Fix i64 return, fix CopyFromReg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21076
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 4 Apr 2005 05:05:52 +0000 (05:05 +0000)]
fix SREM/UREM, which gave incorrect results for x%y if x was zero. This is
an ugly hack, but it seems to work. I should fix this properly and add a test
as well.
fixes multisource/obsequi (maybe others)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21075
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 4 Apr 2005 04:50:57 +0000 (04:50 +0000)]
add implicit use op
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21074
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 4 Apr 2005 00:57:08 +0000 (00:57 +0000)]
Handle expanding arguments to ISD::TRUNCATE. This happens on PowerPC when
you have something like i16 = truncate i64. This fixes Regression/C/casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21073
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Apr 2005 23:41:52 +0000 (23:41 +0000)]
Fix sign_extend and zero_extend of promoted value types to expanded value
types. This occurs when casting short to long on PPC for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21072
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sun, 3 Apr 2005 23:11:17 +0000 (23:11 +0000)]
Full varargs support. All of UnitTests now passes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21070
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sun, 3 Apr 2005 22:22:56 +0000 (22:22 +0000)]
Pass the correct value for the chain to the store
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21066
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sun, 3 Apr 2005 22:13:27 +0000 (22:13 +0000)]
Fix SHL_PARTS
Start implementation of integer varargs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21065
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sun, 3 Apr 2005 20:35:21 +0000 (20:35 +0000)]
is this simpler? I think it is simpler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21064
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sun, 3 Apr 2005 18:24:50 +0000 (18:24 +0000)]
fix 101 regressions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21063
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sun, 3 Apr 2005 14:57:35 +0000 (14:57 +0000)]
a wise man once said:
"!!!!!!!! IF YOU CHANGE SPACES TO TABS, YOU WILL BE KILLED!!!!!!"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21062
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sun, 3 Apr 2005 14:52:01 +0000 (14:52 +0000)]
.bss is no problem here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21061
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sun, 3 Apr 2005 11:20:20 +0000 (11:20 +0000)]
Keeping up with the Joneses.
Implement not, nor, nand, and eqv
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21060
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 2 Apr 2005 22:32:39 +0000 (22:32 +0000)]
Select optimization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21051
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 2 Apr 2005 21:06:51 +0000 (21:06 +0000)]
Try several things. 1) drop /i from FP ops 2) factor out FP to Int moves and provide 21264 support for those 3) match not 4) match ornot andnot xornot
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21046
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 20:17:09 +0000 (20:17 +0000)]
fix some VC compilation problems, thanks to Jeff C for pointing this out!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21044
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 20:08:17 +0000 (20:08 +0000)]
EquivClassGraphs is now in DataStructure.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21042
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 20:08:06 +0000 (20:08 +0000)]
merge EquivClassGraphs.h into DataStructure.h with the other DSA pass definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21041
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 20:02:41 +0000 (20:02 +0000)]
use a callee_iterator typedef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21038
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 20:02:32 +0000 (20:02 +0000)]
add and use a callee_iterator typedef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21037
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 19:17:18 +0000 (19:17 +0000)]
Change the ActualCallees callgraph from hash_multimap<Instruction,Function>
to std::set<std::pair<Inst,Func>> to avoid duplicate entries.
This speeds up the CompleteBU pass from 1.99s to .15s on povray and the
eqgraph passes from 1.5s to .16s on the same.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21031
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 19:15:15 +0000 (19:15 +0000)]
Change the ActualCallees callgraph from hash_multimap<Instruction,Function>
to std::set<std::pair<Inst,Func>> to avoid duplicate entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21030
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 2 Apr 2005 19:11:07 +0000 (19:11 +0000)]
FNEG/FABS/UNDEF
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21029
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sat, 2 Apr 2005 19:04:58 +0000 (19:04 +0000)]
FNEG/FABS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21028
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 16:17:57 +0000 (16:17 +0000)]
this has now been fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21026
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sat, 2 Apr 2005 12:30:47 +0000 (12:30 +0000)]
ia64 asmprinter fixes:
- turn off assembler's autoalignment
- set FunctionAddrPrefix/Suffix so that .data8 entries pointing to
functions have their value wrapped in @fptr(), so that a function
descriptor will be materialized for that function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21025
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sat, 2 Apr 2005 12:21:51 +0000 (12:21 +0000)]
add support for prefix/suffix strings to go around GlobalValue(s)
(which may or be function pointers) in the asmprinter. For the moment,
this changes nothing, except the IA64 backend which can use this to write:
data8.ua @fptr(blah__blah__mangled_function_name)
(by setting FunctionAddrPrefix/Suffix to "@fptr(" / ")")
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21024
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sat, 2 Apr 2005 10:33:53 +0000 (10:33 +0000)]
support IDEF, fnegabs (thanks sampo)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21023
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sat, 2 Apr 2005 10:06:27 +0000 (10:06 +0000)]
add fnegabs op
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21022
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 2 Apr 2005 05:59:34 +0000 (05:59 +0000)]
Set shift amount to Extend
Implement ISD::FABS and ISD::FNEG nodes
Implement SHL_PARTS, SRL_PARTS, and SRA_PARTS
Generate PowerPC 'fneg', 'fabs', and 'fnabs' instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21018
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 05:40:03 +0000 (05:40 +0000)]
don't forget to use the right code generator :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21017
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 05:35:00 +0000 (05:35 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21016
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 05:30:17 +0000 (05:30 +0000)]
add support for FABS and FNEG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21015
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 05:26:53 +0000 (05:26 +0000)]
transform fabs/fabsf calls into FABS nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21014
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 05:26:37 +0000 (05:26 +0000)]
Expand fabs into fneg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21013
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sat, 2 Apr 2005 05:18:38 +0000 (05:18 +0000)]
add support FNEG and FABS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21012
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 05:04:50 +0000 (05:04 +0000)]
Turn -0.0 - X -> fneg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21011
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 05:03:24 +0000 (05:03 +0000)]
This target doesn't support fabs/fneg yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21010
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 05:00:07 +0000 (05:00 +0000)]
Several changes mixed up here. First when legalizing a DAG with pcmarker,
dont' regen the whole dag if unneccesary. Second, fix and ugly bug with
the _PARTS nodes that caused legalize to produce multiples of them.
Finally, implement initial support for FABS and FNEG. Currently FNEG is
the only one to be trusted though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21009
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 04:58:41 +0000 (04:58 +0000)]
print fneg/fabs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21008
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 04:58:28 +0000 (04:58 +0000)]
Add two happy new nodes for FABS and FNEG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21007
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 04:31:56 +0000 (04:31 +0000)]
add an fabs instr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21006
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 04:01:14 +0000 (04:01 +0000)]
Add support for 64-bit shifts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21005
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 04:00:59 +0000 (04:00 +0000)]
fix some bugs in the implementation of SHL_PARTS and friends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21004
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 03:59:45 +0000 (03:59 +0000)]
fix a comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21003
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 03:38:53 +0000 (03:38 +0000)]
Turn expanded shift operations into (e.g.) SHL_PARTS if the target supports it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21002
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 03:30:42 +0000 (03:30 +0000)]
Print some new nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21001
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 03:30:33 +0000 (03:30 +0000)]
add some new nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21000
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 03:22:40 +0000 (03:22 +0000)]
Fix a bug when inserting a libcall into a function with no other calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20999
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Apr 2005 02:41:55 +0000 (02:41 +0000)]
new generic testcsae
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20996
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 2 Apr 2005 00:42:16 +0000 (00:42 +0000)]
Fix i64 returns
Generate PowerPC 'subfic' instruction when appropriate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20995
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 2 Apr 2005 00:41:14 +0000 (00:41 +0000)]
Fix a warning about an unhandled switch case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20994
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 1 Apr 2005 23:16:23 +0000 (23:16 +0000)]
For Sparc, this xfails. I don't think sparc has the C99 complex data
type support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20993
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Apr 2005 22:46:45 +0000 (22:46 +0000)]
Add support for ISD::UNDEF to the X86 be
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20990
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 1 Apr 2005 22:34:39 +0000 (22:34 +0000)]
Add ISD::UNDEF node
Teach the SelectionDAG code how to expand and promote it
Have PPC32 LowerCallTo generate ISD::UNDEF for int arg regs used up by fp
arguments, but not shadowing their value. This allows us to do the right
thing with both fixed and vararg floating point arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20988
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Apr 2005 15:41:30 +0000 (15:41 +0000)]
Fix another PATypeHolder error, contributed by Bill Wendling!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20983
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Fri, 1 Apr 2005 10:35:00 +0000 (10:35 +0000)]
repair mindless SELECT waste.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20982
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 1 Apr 2005 08:57:43 +0000 (08:57 +0000)]
Fix Olden/bh, CR0 was being set in the wrong order
LowerCallTo and ISD::CALL are going to need to be modified, regs are being
set in the wrong order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20981
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 1 Apr 2005 07:21:30 +0000 (07:21 +0000)]
Also apply Chris's fix to FP select and SETCC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20979
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Apr 2005 07:19:06 +0000 (07:19 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20978
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Apr 2005 07:10:02 +0000 (07:10 +0000)]
Move the selection of the arms of the select operation up to the conditional
part to make sure we get the side effects and to avoid confusing the CFG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20977
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Apr 2005 06:48:38 +0000 (06:48 +0000)]
print the machine CFG in the -print-machineinstrs dump
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20976
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 1 Apr 2005 05:57:17 +0000 (05:57 +0000)]
Fix stores to global addresses
Fix calls with no arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20975
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 1 Apr 2005 04:45:11 +0000 (04:45 +0000)]
Support indexed loads and stores. This drops Shootout/matrix time from
18.8 to 14.8 seconds. The Pattern ISel is now often faster than the
Simple ISel, esp. on memory intensive code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20973
91177308-0d34-0410-b5e6-
96231b3b80d8