- Aug 30, 2008
-
-
Evan Cheng authored
Transform (x << (y&31)) -> (x << y). This takes advantage of the fact x86 shift instructions 2nd operand (shift count) is limited to 0 to 31 (or 63 in the x86-64 case). llvm-svn: 55558
-
Evan Cheng authored
llvm-svn: 55553
-
Evan Cheng authored
llvm-svn: 55552
-
Evan Cheng authored
llvm-svn: 55548
-
- Aug 29, 2008
-
-
Owen Anderson authored
llvm-svn: 55545
-
Evan Cheng authored
llvm-svn: 55521
-
Dan Gohman authored
llvm-svn: 55512
-
Gabor Greif authored
llvm-svn: 55511
-
- Aug 28, 2008
-
-
Gabor Greif authored
llvm-svn: 55504
-
Rafael Espindola authored
llvm-svn: 55486
-
Evan Cheng authored
llvm-svn: 55466
-
Dale Johannesen authored
ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD. Increased the Hardcoded Constant OpActionsCapacity to match. Large but boring; no functional change. This is to support partial-word atomics on ppc; i8 is not a valid type there, so by the time we get to lowering, the ATOMIC_LOAD nodes looks the same whether the type was i8 or i32. The information can be added to the AtomicSDNode, but that is the largest SDNode; I don't fully understand the SDNode allocation, but it is sensitive to the largest node size, so increasing that must be bad. This is the alternative. llvm-svn: 55457
-
- Aug 27, 2008
-
-
Bill Wendling authored
SSE2 registers as well as the MMX registers. llvm-svn: 55436
-
Dan Gohman authored
64-bit registers from 16-bit and smaller memory locations, prefer instructions that define the entire 64-bit register, to avoid partial-register updates. llvm-svn: 55422
-
Gabor Greif authored
llvm-svn: 55394
-
- Aug 26, 2008
-
-
Owen Anderson authored
llvm-svn: 55377
-
Owen Anderson authored
was inserted or not. This allows bitcast in fast isel to properly handle the case where an appropriate reg-to-reg copy is not available. llvm-svn: 55375
-
Chris Lattner authored
assign it to a version of the xmm register with the regclass that matches its type. This fixes PR2715, a bug handling some crazy xpcom case in mozilla. llvm-svn: 55358
-
Evan Cheng authored
llvm-svn: 55348
-
- Aug 25, 2008
-
-
Evan Cheng authored
llvm-svn: 55341
-
Evan Cheng authored
Try approach to moving call address load inside of callseq_start. Now it's done during the preprocess of x86 isel. callseq_start's chain is changed to load's chain node; while load's chain is the last of callseq_start or the loads or copytoreg nodes inserted to move arguments to the right spot. llvm-svn: 55338
-
Bill Wendling authored
llvm-svn: 55318
-
Bill Wendling authored
instructions on having SSE2. llvm-svn: 55317
-
Evan Cheng authored
llvm-svn: 55300
-
- Aug 24, 2008
-
-
Bill Wendling authored
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc ... src/libiberty/make-temp-file.c -o make-temp-file.o Assertion failed: (Node2Index[SU->NodeNum] > Node2Index[I->Dep->NodeNum] && "Wrong topological sorting"), function InitDAGTopologicalSorting, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp, line 508. ../../../../llvm-gcc.src/libiberty/hashtab.c:955: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [hashtab.o] Error 1 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [multi-do] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-target-libiberty] Error 2 make: *** [all] Error 2 llvm-svn: 55295
-
Evan Cheng authored
llvm-svn: 55292
-
Cedric Venet authored
Suggested by aKor. llvm-svn: 55282
-
- Aug 23, 2008
-
-
Anton Korobeynikov authored
Is there way to avoid explicit target check? llvm-svn: 55238
-
Dan Gohman authored
process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. llvm-svn: 55219
-
- Aug 22, 2008
-
-
Bill Wendling authored
{standard input}:17:bad register name `%sil' make[4]: *** [libgcc/./_addvsi3.o] Error 1 make[4]: *** Waiting for unfinished jobs.... {standard input}:23:bad register name `%dil' {standard input}:28:bad register name `%dil' make[4]: *** [libgcc/./_addvdi3.o] Error 1 {standard input}:18:bad register name `%sil' make[4]: *** [libgcc/./_subvsi3.o] Error 1 llvm-svn: 55200
-
Dan Gohman authored
instructions that define the full 32 or 64-bit value. When anyexting from i8 to i16 or i32, it's not necessary to zero out the high portion of the register. llvm-svn: 55190
-
Dan Gohman authored
and use it in FastISelEmitter.cpp, and make FastISel subtarget aware. Among other things, this lets it work properly on x86 targets that don't have SSE, where it successfully selects x87 instructions. llvm-svn: 55156
-
Bill Wendling authored
llvm-svn: 55147
-
Bill Wendling authored
llvm-svn: 55146
-
- Aug 21, 2008
-
-
Evan Cheng authored
1. x86-64 byval alignment should be max of 8 and alignment of type. Previously the code was not doing what the commit message was saying. 2. Do not use byte repeat move and store operations. These are slow. llvm-svn: 55139
-
Mon P Wang authored
llvm-svn: 55135
-
Anton Korobeynikov authored
This unbreaks explicit reg vars inside JIT, which are implemented in such hacky way :) llvm-svn: 55128
-
Dan Gohman authored
from all targets. llvm-svn: 55124
-
Bill Wendling authored
llvm-svn: 55117
-
Owen Anderson authored
llvm-svn: 55092
-