oota-llvm.git
15 years agoEmit cross regclass register moves for thumb2.
Anton Korobeynikov [Thu, 16 Jul 2009 23:26:06 +0000 (23:26 +0000)]
Emit cross regclass register moves for thumb2.
Minor code duplication cleanup.

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

15 years agoDisable this assert for now, it is firing on an llvm-gcc bootstrap. :(
Daniel Dunbar [Thu, 16 Jul 2009 23:02:46 +0000 (23:02 +0000)]
Disable this assert for now, it is firing on an llvm-gcc bootstrap. :(

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

15 years agoAdd new flags '-test-cflags' and '-test-cxxflags' to pass in flags directly to the...
Bill Wendling [Thu, 16 Jul 2009 22:59:17 +0000 (22:59 +0000)]
Add new flags '-test-cflags' and '-test-cxxflags' to pass in flags directly to the llvm testsuite.

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

15 years agoGV with ghost linkage (module being lazily streamed in in JIT lazy compilation mode...
Evan Cheng [Thu, 16 Jul 2009 22:53:10 +0000 (22:53 +0000)]
GV with ghost linkage (module being lazily streamed in in JIT lazy compilation mode) do not require extra load from stub. This fixes ExecutionEngine/2005-12-02-TailCallBug.ll.

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

15 years agoAssume an inline asm might be a call, so we get
Dale Johannesen [Thu, 16 Jul 2009 22:34:45 +0000 (22:34 +0000)]
Assume an inline asm might be a call, so we get
stack alignment right when it is.  This is not
ideal but conservatively correct.  Adjust a test
to compensate for changed stack offset value.
gcc.apple/asm-block-57.c

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

15 years agoEmit line numbers in asm comments when available.
David Greene [Thu, 16 Jul 2009 22:24:20 +0000 (22:24 +0000)]
Emit line numbers in asm comments when available.

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

15 years agoPrivatize the MDString uniquing table.
Owen Anderson [Thu, 16 Jul 2009 22:11:26 +0000 (22:11 +0000)]
Privatize the MDString uniquing table.

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

15 years agoFix inverted preprocessor conditional.
Daniel Dunbar [Thu, 16 Jul 2009 22:08:25 +0000 (22:08 +0000)]
Fix inverted preprocessor conditional.

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

15 years agoFix compiler warning (for -Asserts).
Daniel Dunbar [Thu, 16 Jul 2009 22:06:22 +0000 (22:06 +0000)]
Fix compiler warning (for -Asserts).

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

15 years agoSilence warning in Linux builds:
Jakob Stoklund Olesen [Thu, 16 Jul 2009 21:24:13 +0000 (21:24 +0000)]
Silence warning in Linux builds:

X86InstrInfo.cpp:2272: warning: suggest explicit braces to avoid ambiguous 'else'

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

15 years agoAdd raw_null_ostream and llvm::nulls(), a raw_ostream that discards output.
Daniel Dunbar [Thu, 16 Jul 2009 21:17:53 +0000 (21:17 +0000)]
Add raw_null_ostream and llvm::nulls(), a raw_ostream that discards output.
 - No functionality change.

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

15 years agoAdd line numbers to OProfile. To do this, I added a processDebugLoc()
Jeffrey Yasskin [Thu, 16 Jul 2009 21:07:26 +0000 (21:07 +0000)]
Add line numbers to OProfile. To do this, I added a processDebugLoc()
call to the MachineCodeEmitter interface and made copying the start
line of a function not conditional on whether we're emitting Dwarf
debug information. I'll propagate the processDebugLoc() calls to the
non-X86 targets in a followup patch.

In the long run, it'll probably be better to gather this information
through the DwarfWriter, but the DwarfWriter currently depends on the
AsmPrinter and TargetAsmInfo, and fixing that would be out of the way
for this patch.

There's a bug in OProfile 0.9.4 that makes it ignore line numbers for
addresses above 4G, and a patch fixing it at
http://thread.gmane.org/gmane.linux.oprofile/7634

Sample output:

$ sudo opcontrol --reset; sudo opcontrol --start-daemon; sudo opcontrol --start; `pwd`/Debug/bin/lli fib.bc; sudo opcontrol --stop
Signalling daemon... done
Profiler running.
fib(40) == 165580141
Stopping profiling.

$ opreport -g -d -l `pwd`/Debug/bin/lli|head -60
Overflow stats not available
CPU: Core 2, speed 1998 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
vma      samples  %        linenr info                 image name               symbol name
00007f67a30370b0 25489    61.2554  fib.c:24                    10946.jo                 fib_left
  00007f67a30370b0 1634      6.4106  fib.c:24
  00007f67a30370b1 83        0.3256  fib.c:24
  00007f67a30370b9 1997      7.8348  fib.c:24
  00007f67a30370c6 2080      8.1604  fib.c:27
  00007f67a30370c8 988       3.8762  fib.c:27
  00007f67a30370cd 1315      5.1591  fib.c:27
  00007f67a30370cf 251       0.9847  fib.c:27
  00007f67a30370d3 1191      4.6726  fib.c:27
  00007f67a30370d6 975       3.8252  fib.c:27
  00007f67a30370db 1010      3.9625  fib.c:27
  00007f67a30370dd 242       0.9494  fib.c:27
  00007f67a30370e1 2782     10.9145  fib.c:28
  00007f67a30370e5 3768     14.7828  fib.c:28
  00007f67a30370eb 615       2.4128  (no location information)
  00007f67a30370f3 6558     25.7287  (no location information)
00007f67a3037100 15603    37.4973  fib.c:29                    10946.jo                 fib_right
  00007f67a3037100 1646     10.5493  fib.c:29
  00007f67a3037101 45        0.2884  fib.c:29
  00007f67a3037109 2372     15.2022  fib.c:29
  00007f67a3037116 2234     14.3178  fib.c:32
  00007f67a3037118 612       3.9223  fib.c:32
  00007f67a303711d 622       3.9864  fib.c:32
  00007f67a303711f 385       2.4675  fib.c:32
  00007f67a3037123 404       2.5892  fib.c:32
  00007f67a3037126 634       4.0633  fib.c:32
  00007f67a303712b 870       5.5759  fib.c:32
  00007f67a303712d 62        0.3974  fib.c:32
  00007f67a3037131 1848     11.8439  fib.c:33
  00007f67a3037135 2840     18.2016  fib.c:33
  00007f67a303713a 1         0.0064  fib.c:33
  00007f67a303713b 1023      6.5564  (no location information)
  00007f67a3037143 5         0.0320  (no location information)
000000000080c1e4 15        0.0360  MachineOperand.h:150        lli                      llvm::MachineOperand::isReg() const
  000000000080c1e4 6        40.0000  MachineOperand.h:150
  000000000080c1ec 2        13.3333  MachineOperand.h:150
...

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

15 years agoTeach MachineInstr::isRegTiedToDefOperand() to correctly parse inline asm operands.
Jakob Stoklund Olesen [Thu, 16 Jul 2009 20:58:34 +0000 (20:58 +0000)]
Teach MachineInstr::isRegTiedToDefOperand() to correctly parse inline asm operands.

The inline asm operands must be parsed from the first flag, you cannot assume
that an immediate operand preceeding a register use operand is the flag.
PowerPC "m" operands are represented as (flag, imm, reg) triples.
isRegTiedToDefOperand() would incorrectly interpret the imm as the flag.

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

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