- Aug 11, 2009
-
-
Owen Anderson authored
the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
-
Owen Anderson authored
llvm-svn: 78610
-
- Aug 08, 2009
-
-
Chris Lattner authored
llvm-svn: 78417
-
- Jul 30, 2009
-
-
Daniel Dunbar authored
llvm-svn: 77613
-
- Jul 29, 2009
-
-
Chris Lattner authored
llvm-svn: 77503
-
- Jul 08, 2009
-
-
Torok Edwin authored
Also remove trailing semicolon. llvm-svn: 75027
-
- Jul 03, 2009
-
-
Daniel Dunbar authored
- Sorry, I can't help myself. - No intended functionality change. llvm-svn: 74742
-
- Jun 02, 2009
-
-
Dale Johannesen authored
llvm-svn: 72712
-
Dale Johannesen authored
ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to) instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust all target-independent code to use this format. Most targets will still produce a Flag-setting target-dependent version when selection is done. X86 is converted to use i32 instead, which means TableGen needs to produce different code in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit in xxxInstrInfo, currently set only for X86; in principle this is temporary and should go away when all other targets have been converted. All relevant X86 instruction patterns are modified to represent setting and using EFLAGS explicitly. The same can be done on other targets. The immediate behavior change is that an ADC/ADD pair are no longer tightly coupled in the X86 scheduler; they can be separated by instructions that don't clobber the flags (MOV). I will soon add some peephole optimizations based on using other instructions that set the flags to feed into ADC. llvm-svn: 72707
-
- May 13, 2009
-
-
Dale Johannesen authored
Should remove a warning from MSVC. llvm-svn: 71603
-
- May 04, 2009
-
-
Dan Gohman authored
llvm-svn: 70879
-
- Apr 30, 2009
-
-
Bill Wendling authored
which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
-
- Apr 29, 2009
-
-
Bill Wendling authored
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
-
- Apr 28, 2009
-
-
Bill Wendling authored
llvm-svn: 70275
-
Bill Wendling authored
use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... llvm-svn: 70270
-
- Apr 13, 2009
-
-
Dan Gohman authored
This will be used to replace things like X86's MOV32to32_. Enhance ScheduleDAGSDNodesEmit to be more flexible and robust in the presense of subregister superclasses and subclasses. It can now cope with the definition of a virtual register being in a subclass of a use. Re-introduce the code for recording register superreg classes and subreg classes. This is needed because when subreg extracts and inserts get coalesced away, the virtual registers are left in the correct subclass. llvm-svn: 68961
-
- Apr 03, 2009
-
-
Dan Gohman authored
Note that these are distinct from TargetInstrInfo::INSERT_SUBREG and TargetInstrInfo::EXTRACT_SUBREG, which are used. llvm-svn: 68355
-
- Mar 26, 2009
-
-
Jim Grosbach authored
llvm-svn: 67758
-
Jim Grosbach authored
llvm-svn: 67750
-
Jim Grosbach authored
register classes. Before, MVT::Other would be returned anytime a reg was in multiple register classes. Now, MVT::Other is only returned if the types for those register classes differ. llvm-svn: 67714
-
- Feb 06, 2009
-
-
Dale Johannesen authored
its corresponding getTargetNode. Lots of caller changes. llvm-svn: 63904
-
- Feb 05, 2009
-
-
Dale Johannesen authored
llvm-svn: 63889
-
Dale Johannesen authored
Adjust callers. llvm-svn: 63789
-
- Jan 30, 2009
-
-
Bill Wendling authored
llvm-svn: 63342
-
- Jan 29, 2009
-
-
Bill Wendling authored
- Modify TableGen to add the DebugLoc when calling getTargetNode. (The light-weight wrappers are only temporary. The non-DebugLoc version will be removed once the whole debug info stuff is finished with.) llvm-svn: 63273
-
Dan Gohman authored
after the code that sorts the patterns. This doesn't affect the output, but it makes the code a little easier to follow. llvm-svn: 63265
-
- Jan 16, 2009
-
-
Dan Gohman authored
is a leaf node. Patch by Brandner! llvm-svn: 62361
-
Dan Gohman authored
adding more information to the temporary variables names so that they don't conflict. llvm-svn: 62296
-
- Jan 05, 2009
-
-
Dan Gohman authored
llvm-svn: 61732
-
- Dec 19, 2008
-
-
Dan Gohman authored
reduces the amount of code slightly when assertions are enabled. llvm-svn: 61249
-
- Dec 03, 2008
-
-
Dan Gohman authored
is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. llvm-svn: 60459
-
- Nov 27, 2008
-
-
Evan Cheng authored
On x86 favors folding short immediate into some arithmetic operations (e.g. add, and, xor, etc.) because materializing an immediate in a register is expensive in turns of code size. e.g. movl 4(%esp), %eax addl $4, %eax is 2 bytes shorter than movl $4, %eax addl 4(%esp), %eax llvm-svn: 60139
-
- Nov 05, 2008
-
-
Dan Gohman authored
nodes that are already selected. llvm-svn: 58763
-
Dan Gohman authored
priority function. Instead, just iterate over the AllNodes list, which is already in topological order. This eliminates a fair amount of bookkeeping, and speeds up the isel phase by about 15% on many testcases. The impact on most targets is that AddToISelQueue calls can be simply removed. In the x86 target, there are two additional notable changes. The rule-bending AND+SHIFT optimization in MatchAddress that creates new pre-isel nodes during isel is now a little more verbose, but more robust. Instead of either creating an invalid DAG or creating an invalid topological sort, as it has historically done, it can now just insert the new nodes into the node list at a position where they will be consistent with the topological ordering. Also, the address-matching code has logic that checked to see if a node was "already selected". However, when a node is selected, it has all its uses taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any further visits from MatchAddress. This code is now removed. llvm-svn: 58748
-
- Oct 27, 2008
-
-
David Greene authored
Have TableGen emit setSubgraphColor calls under control of a -gen-debug flag. Then in a debugger developers can set breakpoints at these calls to see waht is about to be selected and what the resulting subgraph looks like. This really helps when debugging instruction selection. llvm-svn: 58278
-
- Oct 17, 2008
-
-
Dan Gohman authored
constants that don't fit in an int. This fixes "this decimal constant is unsigned only in ISO C90" warnings. llvm-svn: 57668
-
Dan Gohman authored
use a SUB instruction instead of an ADD, because -128 can be encoded in an 8-bit signed immediate field, while +128 can't be. This avoids the need for a 32-bit immediate field in this case. A similar optimization applies to 64-bit adds with 0x80000000, with the 32-bit signed immediate field. To support this, teach tablegen how to handle 64-bit constants. llvm-svn: 57663
-
- Oct 15, 2008
-
-
Dan Gohman authored
This will allow predicates to be composed, which will allow the predicate definitions to become less redundant, and eventually will allow DAGISelEmitter.cpp to emit less redundant code. llvm-svn: 57562
-
- Sep 28, 2008
-
-
Dan Gohman authored
helper functions instead of duplicating it inline each time it is needed. This eliminates a few hundred or so copies of this code in each target. llvm-svn: 56759
-
- Sep 26, 2008
-
-
Dan Gohman authored
consistancy with ConstantInt, and re-implement it in terms of ConstantInt's getSExtValue. llvm-svn: 56700
-