oota-llvm.git
15 years agoChanged my mind. We now allow remat of instructions whose defs have subreg indices.
Evan Cheng [Thu, 16 Jul 2009 20:15:00 +0000 (20:15 +0000)]
Changed my mind. We now allow remat of instructions whose defs have subreg indices.

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

15 years agoPrivatize the ConstantFP table. I'm on a roll!
Owen Anderson [Thu, 16 Jul 2009 19:05:41 +0000 (19:05 +0000)]
Privatize the ConstantFP table.  I'm on a roll!

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

15 years agothis should be xfailed on darwin. Darwin doesn't use the libstdc++ in the llvm-gcc...
Chris Lattner [Thu, 16 Jul 2009 18:45:51 +0000 (18:45 +0000)]
this should be xfailed on darwin.  Darwin doesn't use the libstdc++ in the llvm-gcc distro, it uses the system version.

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

15 years agoWith recent MC changes, RIP base register is explicitly modeled. Make sure we add...
Evan Cheng [Thu, 16 Jul 2009 18:44:05 +0000 (18:44 +0000)]
With recent MC changes, RIP base register is explicitly modeled. Make sure we add it when x86 V_SET0 / V_SETALLONES (by transforming it into a constpool load) into the use instruction.

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

15 years agoUpdate CMake file.
Ted Kremenek [Thu, 16 Jul 2009 18:29:22 +0000 (18:29 +0000)]
Update CMake file.

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

15 years agoMove the ConstantInt uniquing table into LLVMContextImpl. This exposed a number...
Owen Anderson [Thu, 16 Jul 2009 18:04:31 +0000 (18:04 +0000)]
Move the ConstantInt uniquing table into LLVMContextImpl.  This exposed a number of issues in
our current context-passing stuff, which is also fixed here

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

15 years agoRemoved the SubsectionsViaSymbols MCStreamer API and replaced it with a generic
Kevin Enderby [Thu, 16 Jul 2009 17:56:39 +0000 (17:56 +0000)]
Removed the SubsectionsViaSymbols MCStreamer API and replaced it with a generic
EmitAssemblerFlag API which takes a value from the added AssemblerFlag
enumerated constants.

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

15 years agoTweak svn:ignore
Daniel Dunbar [Thu, 16 Jul 2009 17:38:37 +0000 (17:38 +0000)]
Tweak svn:ignore

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

15 years agoFill in some holes in ScalarEvolution's loop iteration condition
Dan Gohman [Thu, 16 Jul 2009 17:34:36 +0000 (17:34 +0000)]
Fill in some holes in ScalarEvolution's loop iteration condition
analysis. This allows indvars to emit a simpler loop trip count
expression.

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

15 years agoClean up the definition of Str in AsmParser::ParseDirectiveDarwinDumpOrLoad
Kevin Enderby [Thu, 16 Jul 2009 17:17:46 +0000 (17:17 +0000)]
Clean up the definition of Str in AsmParser::ParseDirectiveDarwinDumpOrLoad
so it is defined with a lifetime that is as short as possible.

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

15 years agoAdd SmallString unit test.
Daniel Dunbar [Thu, 16 Jul 2009 17:00:06 +0000 (17:00 +0000)]
Add SmallString unit test.
 - Patch by Ryan Flynn!

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

15 years agoIn an Apple-style build, compile with llvm-gcc/llvm-g++ if available.
Stuart Hastings [Thu, 16 Jul 2009 16:49:11 +0000 (16:49 +0000)]
In an Apple-style build, compile with llvm-gcc/llvm-g++ if available.

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

15 years agoAdd an isLoopSimplifyForm() predicate, following the example of
Dan Gohman [Thu, 16 Jul 2009 16:16:23 +0000 (16:16 +0000)]
Add an isLoopSimplifyForm() predicate, following the example of
isLCSSAForm(), to test whether a loop is in the form guaranteed
by the LoopSimplify pass.

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

15 years agoUse setStream infomatted_raw_ostream's constructor, to reduce code
Dan Gohman [Thu, 16 Jul 2009 15:37:26 +0000 (15:37 +0000)]
Use setStream infomatted_raw_ostream's constructor, to reduce code
duplication. Also, make setStream honor the old DeleteStream flag.

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

15 years agoRemove inapplicable comments.
Dan Gohman [Thu, 16 Jul 2009 15:33:48 +0000 (15:33 +0000)]
Remove inapplicable comments.

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

15 years agoAdd explicit keywords.
Dan Gohman [Thu, 16 Jul 2009 15:33:04 +0000 (15:33 +0000)]
Add explicit keywords.

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

15 years agoTidy up #includes.
Dan Gohman [Thu, 16 Jul 2009 15:32:28 +0000 (15:32 +0000)]
Tidy up #includes.

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

15 years agoConvert more tools code from cerr and cout to errs() and outs().
Dan Gohman [Thu, 16 Jul 2009 15:30:09 +0000 (15:30 +0000)]
Convert more tools code from cerr and cout to errs() and outs().

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

15 years agoUse size_t.
Dan Gohman [Thu, 16 Jul 2009 15:24:40 +0000 (15:24 +0000)]
Use size_t.

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

15 years agoMake xfail proper
Anton Korobeynikov [Thu, 16 Jul 2009 14:53:47 +0000 (14:53 +0000)]
Make xfail proper

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

15 years agoUnbreak
Anton Korobeynikov [Thu, 16 Jul 2009 14:36:52 +0000 (14:36 +0000)]
Unbreak

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

15 years agoTemporary disable 16 bit bswap
Anton Korobeynikov [Thu, 16 Jul 2009 14:35:57 +0000 (14:35 +0000)]
Temporary disable 16 bit bswap

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

15 years agoAdd instruction formats and few opcodes
Anton Korobeynikov [Thu, 16 Jul 2009 14:35:20 +0000 (14:35 +0000)]
Add instruction formats and few opcodes

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

15 years agoAdd bswap patterns
Anton Korobeynikov [Thu, 16 Jul 2009 14:34:52 +0000 (14:34 +0000)]
Add bswap patterns

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

15 years agoProvide crazy pseudos for regpairs spills / reloads
Anton Korobeynikov [Thu, 16 Jul 2009 14:34:15 +0000 (14:34 +0000)]
Provide crazy pseudos for regpairs spills / reloads

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

15 years agoHandle long-disp stuff more consistently
Anton Korobeynikov [Thu, 16 Jul 2009 14:33:52 +0000 (14:33 +0000)]
Handle long-disp stuff more consistently

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

15 years agoAll FP instructions have 12 bit memory displacement field
Anton Korobeynikov [Thu, 16 Jul 2009 14:33:27 +0000 (14:33 +0000)]
All FP instructions have 12 bit memory displacement field

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

15 years agoAnother predicate routine
Anton Korobeynikov [Thu, 16 Jul 2009 14:33:01 +0000 (14:33 +0000)]
Another predicate routine

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

15 years agoMore helpers
Anton Korobeynikov [Thu, 16 Jul 2009 14:32:41 +0000 (14:32 +0000)]
More helpers

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

15 years agoAdd bunch of branch folding stuff
Anton Korobeynikov [Thu, 16 Jul 2009 14:32:19 +0000 (14:32 +0000)]
Add bunch of branch folding stuff

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

15 years agoAdd missed opcodes to short => long displacement conversion
Anton Korobeynikov [Thu, 16 Jul 2009 14:31:52 +0000 (14:31 +0000)]
Add missed opcodes to short => long displacement conversion

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

15 years agoCleanup
Anton Korobeynikov [Thu, 16 Jul 2009 14:31:32 +0000 (14:31 +0000)]
Cleanup

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

15 years agoFix logic inversion for RI-mode address selection
Anton Korobeynikov [Thu, 16 Jul 2009 14:31:14 +0000 (14:31 +0000)]
Fix logic inversion for RI-mode address selection

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

15 years agoUnbreak the test
Anton Korobeynikov [Thu, 16 Jul 2009 14:30:49 +0000 (14:30 +0000)]
Unbreak the test

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

15 years agoExpand 32-bit bitconverts via memory
Anton Korobeynikov [Thu, 16 Jul 2009 14:30:29 +0000 (14:30 +0000)]
Expand 32-bit bitconverts via memory

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

15 years agoFix incomin arg stack frame offset in case we need to generate stack frame
Anton Korobeynikov [Thu, 16 Jul 2009 14:29:57 +0000 (14:29 +0000)]
Fix incomin arg stack frame offset in case we need to generate stack frame

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

15 years agoFix instruction mnemonics for some fp_to_sint operations
Anton Korobeynikov [Thu, 16 Jul 2009 14:29:26 +0000 (14:29 +0000)]
Fix instruction mnemonics for some fp_to_sint operations

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

15 years agoi32 values are passed extended also on stack. Handle this in generic way
Anton Korobeynikov [Thu, 16 Jul 2009 14:29:05 +0000 (14:29 +0000)]
i32 values are passed extended also on stack. Handle this in generic way

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

15 years agoWe definitely have 1-0 bools
Anton Korobeynikov [Thu, 16 Jul 2009 14:28:46 +0000 (14:28 +0000)]
We definitely have 1-0 bools

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

15 years agoRevert the commit, it just hides the real bug
Anton Korobeynikov [Thu, 16 Jul 2009 14:28:26 +0000 (14:28 +0000)]
Revert the commit, it just hides the real bug

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

15 years agoOut GR128 regclass is not a 'real' i128 one.
Anton Korobeynikov [Thu, 16 Jul 2009 14:27:53 +0000 (14:27 +0000)]
Out GR128 regclass is not a 'real' i128 one.

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

15 years agoAdd missed condbranch opcodes
Anton Korobeynikov [Thu, 16 Jul 2009 14:27:26 +0000 (14:27 +0000)]
Add missed condbranch opcodes

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

15 years agoHandle bitconverts
Anton Korobeynikov [Thu, 16 Jul 2009 14:27:01 +0000 (14:27 +0000)]
Handle bitconverts

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

15 years agoUnbreak mvi and friends - emit only 'significant' part of the operand
Anton Korobeynikov [Thu, 16 Jul 2009 14:26:38 +0000 (14:26 +0000)]
Unbreak mvi and friends - emit only 'significant' part of the operand

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

15 years agoExpand fp_to_uint too
Anton Korobeynikov [Thu, 16 Jul 2009 14:26:06 +0000 (14:26 +0000)]
Expand fp_to_uint too

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

15 years agoWe don't have FP truncstores
Anton Korobeynikov [Thu, 16 Jul 2009 14:25:46 +0000 (14:25 +0000)]
We don't have FP truncstores

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

15 years agoExpand uint_to_fp
Anton Korobeynikov [Thu, 16 Jul 2009 14:25:30 +0000 (14:25 +0000)]
Expand uint_to_fp

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

15 years agoEmit proper rounding mode for fp_to_sint
Anton Korobeynikov [Thu, 16 Jul 2009 14:25:12 +0000 (14:25 +0000)]
Emit proper rounding mode for fp_to_sint

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

15 years agof32/f64 regs are stored on stack if we're short in FP regs
Anton Korobeynikov [Thu, 16 Jul 2009 14:24:57 +0000 (14:24 +0000)]
f32/f64 regs are stored on stack if we're short in FP regs

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

15 years agoLower anyext to zext, 32-bit stuff does not have any implicit zero-extension side...
Anton Korobeynikov [Thu, 16 Jul 2009 14:24:41 +0000 (14:24 +0000)]
Lower anyext to zext, 32-bit stuff does not have any implicit zero-extension side effects

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

15 years agoMake FP zero to be legal FP immediate via LOAD ZERO
Anton Korobeynikov [Thu, 16 Jul 2009 14:24:16 +0000 (14:24 +0000)]
Make FP zero to be legal FP immediate via LOAD ZERO

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

15 years agoLoads are not two-address in any way
Anton Korobeynikov [Thu, 16 Jul 2009 14:24:01 +0000 (14:24 +0000)]
Loads are not two-address in any way

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

15 years agoAdd LOAD NEGATIVE instruction
Anton Korobeynikov [Thu, 16 Jul 2009 14:23:44 +0000 (14:23 +0000)]
Add LOAD NEGATIVE instruction

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

15 years agoLOAD COMPLEMENT instruction is not really two-addr
Anton Korobeynikov [Thu, 16 Jul 2009 14:23:30 +0000 (14:23 +0000)]
LOAD COMPLEMENT instruction is not really two-addr

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

15 years agoAdd multiple add/sub instructions
Anton Korobeynikov [Thu, 16 Jul 2009 14:23:16 +0000 (14:23 +0000)]
Add multiple add/sub instructions

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

15 years agoHandle FP callee-saved regs
Anton Korobeynikov [Thu, 16 Jul 2009 14:23:01 +0000 (14:23 +0000)]
Handle FP callee-saved regs

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

15 years agoProper FP extloads
Anton Korobeynikov [Thu, 16 Jul 2009 14:22:46 +0000 (14:22 +0000)]
Proper FP extloads

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

15 years agoAdd proper PWS impdef's
Anton Korobeynikov [Thu, 16 Jul 2009 14:22:30 +0000 (14:22 +0000)]
Add proper PWS impdef's

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

15 years agoPropagate FP select_cc to dag inserters
Anton Korobeynikov [Thu, 16 Jul 2009 14:22:15 +0000 (14:22 +0000)]
Propagate FP select_cc to dag inserters

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

15 years agoImplement fp_to_sint
Anton Korobeynikov [Thu, 16 Jul 2009 14:21:57 +0000 (14:21 +0000)]
Implement fp_to_sint

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

15 years agoImplement FP regs spills / restores
Anton Korobeynikov [Thu, 16 Jul 2009 14:21:41 +0000 (14:21 +0000)]
Implement FP regs spills / restores

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

15 years agoAdd fabs
Anton Korobeynikov [Thu, 16 Jul 2009 14:21:27 +0000 (14:21 +0000)]
Add fabs

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

15 years agoAdd fneg
Anton Korobeynikov [Thu, 16 Jul 2009 14:21:12 +0000 (14:21 +0000)]
Add fneg

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

15 years agoWe don't have native sine / cosine instructions
Anton Korobeynikov [Thu, 16 Jul 2009 14:20:56 +0000 (14:20 +0000)]
We don't have native sine / cosine instructions

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

15 years agoMore sint_to_fp stuff
Anton Korobeynikov [Thu, 16 Jul 2009 14:20:39 +0000 (14:20 +0000)]
More sint_to_fp stuff

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

15 years agoAdd bunch of FP instructions
Anton Korobeynikov [Thu, 16 Jul 2009 14:20:24 +0000 (14:20 +0000)]
Add bunch of FP instructions

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

15 years agoWe don't have any FP extloads
Anton Korobeynikov [Thu, 16 Jul 2009 14:20:08 +0000 (14:20 +0000)]
We don't have any FP extloads

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

15 years agoImplement all comparisons
Anton Korobeynikov [Thu, 16 Jul 2009 14:19:54 +0000 (14:19 +0000)]
Implement all comparisons

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

15 years agoAdd constpool lowering / printing
Anton Korobeynikov [Thu, 16 Jul 2009 14:19:35 +0000 (14:19 +0000)]
Add constpool lowering / printing

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

15 years agoAllow FP arguments pass / return
Anton Korobeynikov [Thu, 16 Jul 2009 14:19:16 +0000 (14:19 +0000)]
Allow FP arguments pass / return

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

15 years agoRegister FP regclasses
Anton Korobeynikov [Thu, 16 Jul 2009 14:19:02 +0000 (14:19 +0000)]
Register FP regclasses

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

15 years agoAdd FP regs
Anton Korobeynikov [Thu, 16 Jul 2009 14:18:48 +0000 (14:18 +0000)]
Add FP regs

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

15 years agoFix fallout from prev. patch
Anton Korobeynikov [Thu, 16 Jul 2009 14:18:31 +0000 (14:18 +0000)]
Fix fallout from prev. patch

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

15 years agoProvide consistent subreg idx scheme. This (hopefully) fixes remaining divide problems
Anton Korobeynikov [Thu, 16 Jul 2009 14:18:17 +0000 (14:18 +0000)]
Provide consistent subreg idx scheme. This (hopefully) fixes remaining divide problems

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

15 years agoUse divide single for 32 bit signed divides
Anton Korobeynikov [Thu, 16 Jul 2009 14:17:52 +0000 (14:17 +0000)]
Use divide single for 32 bit signed divides

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

15 years agoAdd missed operands types
Anton Korobeynikov [Thu, 16 Jul 2009 14:17:07 +0000 (14:17 +0000)]
Add missed operands types

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

15 years agoMissed part of prev. patch
Anton Korobeynikov [Thu, 16 Jul 2009 14:16:45 +0000 (14:16 +0000)]
Missed part of prev. patch

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

15 years agoAnother attempt to fix prologue emission
Anton Korobeynikov [Thu, 16 Jul 2009 14:16:26 +0000 (14:16 +0000)]
Another attempt to fix prologue emission

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

15 years agoImplement 'large' PIC model
Anton Korobeynikov [Thu, 16 Jul 2009 14:16:05 +0000 (14:16 +0000)]
Implement 'large' PIC model

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

15 years agoImplement shifts properly (hopefilly - finally!)
Anton Korobeynikov [Thu, 16 Jul 2009 14:15:24 +0000 (14:15 +0000)]
Implement shifts properly (hopefilly - finally!)

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

15 years agoRemove redundand register move
Anton Korobeynikov [Thu, 16 Jul 2009 14:14:54 +0000 (14:14 +0000)]
Remove redundand register move

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

15 years agoProperly handle divides. As a bonus - implement memory versions of them.
Anton Korobeynikov [Thu, 16 Jul 2009 14:14:33 +0000 (14:14 +0000)]
Properly handle divides. As a bonus - implement memory versions of them.

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

15 years agoFix epic fail: full-width muls are not commutable. This unbreaks bunch of stuff from...
Anton Korobeynikov [Thu, 16 Jul 2009 14:14:01 +0000 (14:14 +0000)]
Fix epic fail: full-width muls are not commutable. This unbreaks bunch of stuff from SingleSource/Benchmarks/Stanford

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

15 years ago32 bit rotate is not twoaddr instruction
Anton Korobeynikov [Thu, 16 Jul 2009 14:13:43 +0000 (14:13 +0000)]
32 bit rotate is not twoaddr instruction

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

15 years ago32 bit shifts have only 12 bit displacements
Anton Korobeynikov [Thu, 16 Jul 2009 14:13:24 +0000 (14:13 +0000)]
32 bit shifts have only 12 bit displacements

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

15 years agoAdd proper register aliases
Anton Korobeynikov [Thu, 16 Jul 2009 14:12:54 +0000 (14:12 +0000)]
Add proper register aliases

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

15 years agoProperly generate stack frame
Anton Korobeynikov [Thu, 16 Jul 2009 14:12:36 +0000 (14:12 +0000)]
Properly generate stack frame

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

15 years agoUnbreak indirect branches
Anton Korobeynikov [Thu, 16 Jul 2009 14:12:18 +0000 (14:12 +0000)]
Unbreak indirect branches

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

15 years agoUnbreak
Anton Korobeynikov [Thu, 16 Jul 2009 14:12:00 +0000 (14:12 +0000)]
Unbreak

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

15 years agoDo not forget to save R15 when we allocate stack frame
Anton Korobeynikov [Thu, 16 Jul 2009 14:11:40 +0000 (14:11 +0000)]
Do not forget to save R15 when we allocate stack frame

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

15 years agoAll calls clobbers R14
Anton Korobeynikov [Thu, 16 Jul 2009 14:11:22 +0000 (14:11 +0000)]
All calls clobbers R14

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

15 years agoUnbreak calls to vararg functions
Anton Korobeynikov [Thu, 16 Jul 2009 14:11:03 +0000 (14:11 +0000)]
Unbreak calls to vararg functions

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

15 years agoStupid typo
Anton Korobeynikov [Thu, 16 Jul 2009 14:10:49 +0000 (14:10 +0000)]
Stupid typo

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

15 years agoTypos
Anton Korobeynikov [Thu, 16 Jul 2009 14:10:35 +0000 (14:10 +0000)]
Typos

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

15 years agoConsolidate reg-imm / reg-reg-imm address mode selection logic in one place.
Anton Korobeynikov [Thu, 16 Jul 2009 14:10:17 +0000 (14:10 +0000)]
Consolidate reg-imm / reg-reg-imm address mode selection logic in one place.

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

15 years agoFix fallout from 12-bit stuff landing: decide whether 20 bit displacements are needed...
Anton Korobeynikov [Thu, 16 Jul 2009 14:09:56 +0000 (14:09 +0000)]
Fix fallout from 12-bit stuff landing: decide whether 20 bit displacements are needed during elimination of frame indexes.

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

15 years agoAdd support for 12 bit displacements
Anton Korobeynikov [Thu, 16 Jul 2009 14:09:35 +0000 (14:09 +0000)]
Add support for 12 bit displacements

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

15 years agoWe already have reserved call frame regardless whether variable sized frame objects...
Anton Korobeynikov [Thu, 16 Jul 2009 14:09:04 +0000 (14:09 +0000)]
We already have reserved call frame regardless whether variable sized frame objects were present or not

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

15 years agoEmit proper lowering of load from arg stack slot
Anton Korobeynikov [Thu, 16 Jul 2009 14:08:42 +0000 (14:08 +0000)]
Emit proper lowering of load from arg stack slot

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

15 years agoImplement dynamic allocas
Anton Korobeynikov [Thu, 16 Jul 2009 14:08:15 +0000 (14:08 +0000)]
Implement dynamic allocas

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