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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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