- Oct 17, 2008
-
-
Dan Gohman authored
shift counts, and patterns that match dynamic shift counts when the subtract is obscured by a truncate node. Add DAGCombiner support for recognizing rotate patterns when the shift counts are defined by truncate nodes. Fix and simplify the code for commuting shld and shrd instructions to work even when the given instruction doesn't have a parent, and when the caller needs a new instruction. These changes allow LLVM to use the shld, shrd, rol, and ror instructions on x86 to replace equivalent code using two shifts and an or in many more cases. llvm-svn: 57662
-
- Oct 16, 2008
-
-
Dan Gohman authored
llvm-svn: 57649
-
Chris Lattner authored
llvm-svn: 57644
-
Duncan Sands authored
uninitialized in these functions with gcc-4.3. llvm-svn: 57635
-
Chris Lattner authored
llvm-svn: 57631
-
Chris Lattner authored
x86 backend. These will all be answered with "patches welcome", so a PR doesn't help drive them along. llvm-svn: 57630
-
Chris Lattner authored
basically working, feel free to remove the tag. The other targets have really basic things that break them. llvm-svn: 57628
-
Dan Gohman authored
llvm-svn: 57622
-
Dan Gohman authored
llvm-svn: 57621
-
Dan Gohman authored
an unindexed load. llvm-svn: 57612
-
- Oct 15, 2008
-
-
Chris Lattner authored
llvm-svn: 57586
-
Chris Lattner authored
llvm-svn: 57582
-
Chris Lattner authored
llvm-svn: 57579
-
Dan Gohman authored
the predicates by extending simple predicates to create more complex predicates instead of duplicating the logic for the simple predicates. This doesn't reduce much redundancy in DAGISelEmitter.cpp's generated source yet; that will require improvements to DAGISelEmitter.cpp's instruction sorting, to make it more effectively group nodes with similar predicates together. llvm-svn: 57565
-
Chris Lattner authored
llvm-svn: 57557
-
Chris Lattner authored
are due to argument passing in calls. This is significant because it hits all immediate arguments to calls on x86-32. llvm-svn: 57556
-
Chris Lattner authored
this: - movl $0, %eax - movl %eax, _yy_n_chars + movl $0, _yy_n_chars llvm-svn: 57555
-
Chris Lattner authored
llvm-svn: 57553
-
Chris Lattner authored
1. Compute action in X86SelectSelect based on MVT instead of type. 2. Use TLI.getValueType(..) instead of MVT::getVT(..) because the former handles pointers and the later doesn't. 3. Don't pass TLI into isTypeLegal, since it already has access to it as an ivar. #2 gives fast isel some minor new functionality: handling load/stores of pointers. llvm-svn: 57552
-
Chris Lattner authored
llvm-svn: 57551
-
Chris Lattner authored
change the generated code, but makes the code simpler. llvm-svn: 57550
-
Chris Lattner authored
which makes it easy to share the compare/imm folding logic with 'setcc'. This shaves a bunch of instructions off the common select case, which happens a lot in llvm-gcc. llvm-svn: 57549
-
Chris Lattner authored
loading 4 into a register and then doing the compare. llvm-svn: 57548
-
Chris Lattner authored
llvm-svn: 57547
-
Chris Lattner authored
llvm-svn: 57546
-
Chris Lattner authored
llvm-svn: 57545
-
Chris Lattner authored
llvm-svn: 57544
-
Evan Cheng authored
i.e. conditions that cannot be checked with a single instruction. For example, SETONE and SETUEQ on x86. - Teach legalizer to implement *illegal* setcc as a and / or of a number of legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ. - Move x86 target over. llvm-svn: 57542
-
Dan Gohman authored
- Move the EH landing-pad code and adjust it so that it works with FastISel as well as with SDISel. - Add FastISel support for @llvm.eh.exception and @llvm.eh.selector. llvm-svn: 57539
-
Dale Johannesen authored
for pentium). Fixes gcc.target/i386/20000720-1.c gcc.target/i386/pr26826.c llvm-svn: 57528
-
- Oct 14, 2008
-
-
Evan Cheng authored
llvm-svn: 57526
-
Jim Grosbach authored
llvm-svn: 57524
-
Dan Gohman authored
instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. llvm-svn: 57521
-
Evan Cheng authored
llvm-svn: 57508
-
- Oct 13, 2008
-
-
Dan Gohman authored
create a new DAG node to represent the new shift to keep the DAG consistent, even though it'll almost always be folded into the address. If a user of the resulting address has multiple uses, the nodes may get revisited by a later MatchAddress call, in which case DAG inconsistencies do matter. This fixes PR2849. llvm-svn: 57465
-
- Oct 12, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 57414
-
Chris Lattner authored
parameters instead of raw Constants. This prevents the constants from being selected by the isel pass, fixing PR2735. llvm-svn: 57385
-
- Oct 11, 2008
-
-
Duncan Sands authored
llvm-svn: 57381
-
Anton Korobeynikov authored
llvm-svn: 57380
-
Dale Johannesen authored
the same pattern as roundpd/roundps, the Intel compiler builtins do not: rounds* has an extra operand. Fixes gcc.target/i386/sse4_1-rounds[sd]-[1234].c llvm-svn: 57370
-