Chris Lattner [Thu, 4 May 2006 17:33:24 +0000 (17:33 +0000)]
new testcase that crashes the instcombine pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28100
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 May 2006 17:21:20 +0000 (17:21 +0000)]
There shalt be only one "immediate" operand type!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28099
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 May 2006 17:02:51 +0000 (17:02 +0000)]
Change "value" in MachineOperand to be a GlobalValue, as that is the only
thing that can be in it. Remove a dead method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28098
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 May 2006 16:56:45 +0000 (16:56 +0000)]
Revert Nate's CR patch from last night, which caused many regressions (e.g. fhourstones).
Loading and storing off R0 isn't what we wanted. Also, taking some CR's out of
CRRC seems to cause failures as well. Further investigation is required.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28097
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 4 May 2006 16:20:22 +0000 (16:20 +0000)]
Make external globals public; other minor cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28096
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 4 May 2006 16:19:27 +0000 (16:19 +0000)]
Make Intel syntax the default when LLVM is built with VC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28095
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 May 2006 01:26:39 +0000 (01:26 +0000)]
Remove a bunch more dead V9 specific stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28094
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 May 2006 01:15:02 +0000 (01:15 +0000)]
Remove a bunch more SparcV9 specific stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28093
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 May 2006 00:49:59 +0000 (00:49 +0000)]
Remove some more V9-specific stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28092
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 May 2006 00:44:25 +0000 (00:44 +0000)]
Remove some more unused stuff from MachineInstr that was leftover from V9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28091
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 May 2006 00:42:08 +0000 (00:42 +0000)]
Simplify handling of relocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28090
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 May 2006 20:32:03 +0000 (20:32 +0000)]
Use movsd to shuffle in the lowest two elements of a v4f32 / v4i32 vector when
movlps cannot be used (e.g. when load from m64 has multiple uses).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28089
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 20:30:20 +0000 (20:30 +0000)]
Change from using MachineRelocation ctors to using static methods
in MachineRelocation to create Relocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 18:55:56 +0000 (18:55 +0000)]
minor cleanups, no functionality change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28087
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 18:52:31 +0000 (18:52 +0000)]
Cleanup the internal implementation of MachineRelocation. No interface or
functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28086
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 3 May 2006 18:16:01 +0000 (18:16 +0000)]
Attempt to get this script working on Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28085
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 3 May 2006 17:49:50 +0000 (17:49 +0000)]
For PR764:
Don't check in the LibDeps.txt and FinalLibDeps.txt files to CVS because
the content differs from platform to platform. Instead, adjust the makefile
so that a dummy llvm-config is built if Perl is not available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28084
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 17:21:32 +0000 (17:21 +0000)]
inline a simple method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28083
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 17:10:41 +0000 (17:10 +0000)]
Suck block address tracking out of targets into the JIT Emitter. This
simplifies the MachineCodeEmitter interface just a little bit and makes
BasicBlocks work like constant pools and jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28082
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 05:48:41 +0000 (05:48 +0000)]
Fix a bug in Owen's checkin that broke the CBE on all non sparc v9 platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28081
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 3 May 2006 04:52:47 +0000 (04:52 +0000)]
Teach the x86 jit how to handle jump tables not directly used by a jump
instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28080
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 3 May 2006 03:48:02 +0000 (03:48 +0000)]
Finish up the initial jump table implementation by allowing jump tables to
not be 100% dense. Increase the minimum threshold for the number of cases
in a switch statement from 4 to 6 in order to create a jump table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28079
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 May 2006 02:11:36 +0000 (02:11 +0000)]
A few instruction scheduling test cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28077
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 May 2006 02:10:45 +0000 (02:10 +0000)]
Bottom up register pressure reduction work: clean up some hacks and enhanced
the heuristic to further reduce spills for several test cases. (Note, it may
not necessarily translate to runtime win!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28076
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 May 2006 02:08:34 +0000 (02:08 +0000)]
Set isStore of instructions with ISD::TRUNCSTORE root node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28075
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 3 May 2006 01:29:57 +0000 (01:29 +0000)]
Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference.
This fixes PR 759.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28074
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 01:03:20 +0000 (01:03 +0000)]
Align function bodies correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28073
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 01:01:51 +0000 (01:01 +0000)]
Add a new emitAlignment method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28072
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 00:54:49 +0000 (00:54 +0000)]
Simplify some code. Don't add memory blocks to the Blocks list twice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28071
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 00:48:22 +0000 (00:48 +0000)]
Add assertions that verify that the actual arguments to a call or invoke match
the prototype of the called function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28070
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 00:32:55 +0000 (00:32 +0000)]
Change the BasicBlockAddrs map to be a vector, indexed by MBB number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28069
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 00:31:21 +0000 (00:31 +0000)]
Keep the alpha JIT similar to the PPC/X86 jits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28068
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 3 May 2006 00:28:50 +0000 (00:28 +0000)]
Keep Visual Studio happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28067
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 May 2006 00:13:06 +0000 (00:13 +0000)]
Simplify some code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28066
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 23:22:24 +0000 (23:22 +0000)]
Several related changes:
1. Change several methods in the MachineCodeEmitter class to be pure virtual.
2. Suck emitConstantPool/initJumpTableInfo into startFunction, removing them
from the MachineCodeEmitter interface, and reducing the amount of target-
specific code.
3. Change the JITEmitter so that it allocates constantpools and jump tables
*right* next to the functions that they belong to, instead of in a separate
pool of memory. This makes all memory for a function be contiguous, and
means the JITEmitter only tracks one block of memory now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28065
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 22:51:03 +0000 (22:51 +0000)]
Add a method for allocating space from the code buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28064
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 2 May 2006 22:43:31 +0000 (22:43 +0000)]
Remove some stuff from the README
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28063
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 21:57:51 +0000 (21:57 +0000)]
Do not make the JIT memory manager manage the memory for globals. Instead
just have the JIT malloc them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28062
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 21:44:14 +0000 (21:44 +0000)]
Minor cleanups, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28061
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 19:14:47 +0000 (19:14 +0000)]
Fix a purely hypothetical problem (for now): emitWord emits in the host
byte format. This doesn't work when using the code emitter in a cross target
environment. Since the code emitter is only really used by the JIT, this
isn't a current problem, but if we ever start emitting .o files, it would be.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28060
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 18:27:26 +0000 (18:27 +0000)]
Refactor the machine code emitter interface to pull the pointers for the current
code emission location into the base class, instead of being in the derived classes.
This change means that low-level methods like emitByte/emitWord now are no longer
virtual (yaay for speed), and we now have a framework to support growable code
segments. This implements feature request #1 of PR469.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28059
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 2 May 2006 17:37:31 +0000 (17:37 +0000)]
Since we don't handle callee-save CRs right yet, don't allocate them. Also
don't step on R11 in the middle of a function when saving and restoring CRs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28058
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 2 May 2006 17:36:46 +0000 (17:36 +0000)]
Print function number instead of name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28057
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 2 May 2006 17:34:51 +0000 (17:34 +0000)]
Hooray, everyone now uses the same printBasicBlockLabel implementation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28056
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 17:20:28 +0000 (17:20 +0000)]
Remove dead method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28055
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 17:17:13 +0000 (17:17 +0000)]
Remove a now-dead method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28054
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 17:16:20 +0000 (17:16 +0000)]
There is no reason to use a virtual method to store this word.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28053
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 16:59:49 +0000 (16:59 +0000)]
Remove the debug machine code emitter. The "FilePrinterEmitter" is moreuseful for debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28052
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 16:59:24 +0000 (16:59 +0000)]
Remove the debug machine code emitter. The "FilePrinterEmitter" is more
useful for debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28051
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 2 May 2006 05:37:32 +0000 (05:37 +0000)]
Extend printBasicBlockLabel a bit so that it can be used to print all
basic block labels, consolidating the code to do so in one place for each
target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28050
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 2 May 2006 04:50:05 +0000 (04:50 +0000)]
Update the PPC compilation callback code to not need weird abi-violating
prologs and epilogs, keep all the asm in one place, and remove use of
compiler builtin functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28049
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 May 2006 04:24:36 +0000 (04:24 +0000)]
Add pass ID's for various passes, so they can be AddRequiredID. Patch by
Domagoj Babic!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28048
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 2 May 2006 03:58:45 +0000 (03:58 +0000)]
De-virtualize SwitchSection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28047
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 2 May 2006 03:46:13 +0000 (03:46 +0000)]
De-virtualize EmitZeroes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28046
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 2 May 2006 03:11:50 +0000 (03:11 +0000)]
Finish support for Microsoft ML/MASM. May still be a few rough edges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28045
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 2 May 2006 01:16:28 +0000 (01:16 +0000)]
Make Intel syntax mode friendlier to Microsoft ML assembler (still needs more work).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28044
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 23:46:16 +0000 (23:46 +0000)]
Put instruction names into the first non TargetInstrInfo namespace found.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28043
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 23:18:55 +0000 (23:18 +0000)]
New testcase that crashes the new CFE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28042
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 22:03:24 +0000 (22:03 +0000)]
Fix a latent bug that my spiller patch last week exposed: we were leaving
instructions in the virtregfolded map that were deleted. Because they
were deleted, newly allocated instructions could end up at the same address,
magically finding themselves in the map. The solution is to remove entries
from the map when we delete the instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28041
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 21:17:10 +0000 (21:17 +0000)]
When promoting a load to a reg-reg copy, where the load was a previous
instruction folded with spill code, make sure the remove the load from
the virt reg folded map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28040
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 21:16:03 +0000 (21:16 +0000)]
Remove previous patch, which wasn't quite right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28039
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 17:01:17 +0000 (17:01 +0000)]
instructions can be in different namespaces. Make sure to use the right
one for each instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28038
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 17:00:49 +0000 (17:00 +0000)]
Put PHI/INLINEASM into the correct namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28037
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 1 May 2006 09:30:17 +0000 (09:30 +0000)]
Formating
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28036
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 1 May 2006 09:20:44 +0000 (09:20 +0000)]
Dis-favor stores more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28035
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 1 May 2006 09:14:40 +0000 (09:14 +0000)]
Bottom up register-pressure reduction scheduler now pushes store operations
up the schedule. This helps code that looks like this:
loads ...
computations (first set) ...
stores (first set) ...
loads
computations (seccond set) ...
stores (seccond set) ...
Without this change, the stores and computations are more likely to
interleave:
loads ...
loads ...
computations (first set) ...
computations (second set) ...
computations (first set) ...
stores (first set) ...
computations (second set) ...
stores (stores set) ...
This can increase the number of spills if we are unlucky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28033
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 1 May 2006 09:04:20 +0000 (09:04 +0000)]
Mark instructions whose pattern is (store ...) isStore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28032
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 1 May 2006 08:56:34 +0000 (08:56 +0000)]
Didn't mean ScheduleDAGList.cpp to make the last checkin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28030
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 1 May 2006 08:54:57 +0000 (08:54 +0000)]
Remove temp. option -spiller-check-liveout, it didn't cause any failure nor performance regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28029
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 05:56:51 +0000 (05:56 +0000)]
Intel mode no longer uses %'s on registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28028
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 05:53:50 +0000 (05:53 +0000)]
Remove %'s from register names when in intel mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28027
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 May 2006 04:11:03 +0000 (04:11 +0000)]
Format #APP lines a bit nicer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28026
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 30 Apr 2006 08:41:47 +0000 (08:41 +0000)]
Local spiller kills a store if the folded restore is turned into a copy.
But this is incorrect if the spilled value live range extends beyond the
current BB.
It is currently controlled by a temporary option -spiller-check-liveout.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28024
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 29 Apr 2006 18:41:44 +0000 (18:41 +0000)]
Mingw32 patches supplied by Anton Korobeynikov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28023
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 23:33:20 +0000 (23:33 +0000)]
Remove a bogus transformation. This fixes SingleSource/UnitTests/2006-01-23-InitializedBitField.c
with some changes I have to the new CFE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28022
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 23:19:39 +0000 (23:19 +0000)]
I can't spell: Register, not Regsiter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28021
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 23:11:40 +0000 (23:11 +0000)]
Implemented x86 inline asm b, h, w, k modifiers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28020
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 22:21:41 +0000 (22:21 +0000)]
Fix InstCombine/2006-04-28-ShiftShiftLongLong.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28019
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 22:17:20 +0000 (22:17 +0000)]
new testcase miscompiled by instcombine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28018
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 21:56:10 +0000 (21:56 +0000)]
Fix CodeGen/Generic/2006-04-28-Sign-extend-bool.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28017
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 21:52:24 +0000 (21:52 +0000)]
testcase that crashes the ppc backend, which can't sextinreg(i1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28016
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 21:29:37 +0000 (21:29 +0000)]
Initial caller side support (for CCC only, not FastCC) of 128-bit vector
passing by value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28015
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 21:19:05 +0000 (21:19 +0000)]
Bare-bone X86 inline asm printer support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28014
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 18:55:34 +0000 (18:55 +0000)]
Update. It should use two shufps, not three!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28013
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 18:54:11 +0000 (18:54 +0000)]
Remove the temporary option: -no-isel-fold-inflight
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28012
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 07:03:38 +0000 (07:03 +0000)]
Implement four-wide shuffle with 2 shufps if no more than two elements come
from each vector. e.g.
shuffle(G1, G2, 7, 1, 5, 2)
==>
movaps _G2, %xmm0
shufps $151, _G1, %xmm0
shufps $216, %xmm0, %xmm0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28011
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 05:36:25 +0000 (05:36 +0000)]
Fix PR743: emit -help output of a tool to cout, not cerr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28010
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 05:25:15 +0000 (05:25 +0000)]
TargetLowering::LowerArguments should return a VBIT_CONVERT of
FORMAL_ARGUMENTS SDOperand in the return result vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28009
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 04:43:18 +0000 (04:43 +0000)]
Mapping of physregs can make it so that the designated and input physregs are
the same. In this case, don't emit a noop copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28008
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 04:14:49 +0000 (04:14 +0000)]
Fix Transforms/Reassociate/2006-04-27-ReassociateVector.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28007
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 04:14:29 +0000 (04:14 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28006
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 02:23:35 +0000 (02:23 +0000)]
Use movaps instead of movapd for spill / restore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28005
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 02:09:19 +0000 (02:09 +0000)]
Added a temporary option -no-isel-fold-inflight to control whether a "inflight"
node can be folded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28003
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 02:08:10 +0000 (02:08 +0000)]
When isel'ing a node, mark its operands "InFlight" before selecting them. These
nodes should not be folded into other nodes.
This fixes the miscompilation of PR 749.
Temporarily under flag control.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28002
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 01:46:50 +0000 (01:46 +0000)]
When we have a two-address instruction where the input cannot be clobbered
and is already available, instead of falling back to emitting a load, fall
back to emitting a reg-reg copy. This generates significantly better code
for some SSE testcases, as SSE has lots of two-address instructions and
none of them are read/modify/write. As one example, this change does:
pshufd %XMM5, XMMWORD PTR [%ESP + 84], 255
xorps %XMM2, %XMM5
cmpltps %XMM1, %XMM0
- movaps XMMWORD PTR [%ESP + 52], %XMM0
- movapd %XMM6, XMMWORD PTR [%ESP + 52]
+ movaps %XMM6, %XMM0
cmpltps %XMM6, XMMWORD PTR [%ESP + 68]
movapd XMMWORD PTR [%ESP + 52], %XMM6
movaps %XMM6, %XMM0
cmpltps %XMM6, XMMWORD PTR [%ESP + 36]
cmpltps %XMM3, %XMM0
- movaps XMMWORD PTR [%ESP + 20], %XMM0
- movapd %XMM7, XMMWORD PTR [%ESP + 20]
+ movaps %XMM7, %XMM0
cmpltps %XMM7, XMMWORD PTR [%ESP + 4]
movapd XMMWORD PTR [%ESP + 20], %XMM7
cmpltps %XMM4, %XMM0
... which is far better than a store followed by a load!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28001
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Apr 2006 01:21:37 +0000 (01:21 +0000)]
Test case for PR748
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28000
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Apr 2006 00:04:05 +0000 (00:04 +0000)]
Add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27999
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Apr 2006 21:40:57 +0000 (21:40 +0000)]
Add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27998
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Apr 2006 21:14:21 +0000 (21:14 +0000)]
Add support for inserting undef into a vector. This implements
Transforms/InstCombine/vec_insert_to_shuffle.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27997
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Apr 2006 21:13:58 +0000 (21:13 +0000)]
This should turn into one vector shuffle instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27996
91177308-0d34-0410-b5e6-
96231b3b80d8