- Jun 05, 2009
-
-
Dan Gohman authored
integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt llvm-svn: 72897
-
- Jun 04, 2009
-
-
Dale Johannesen authored
using Promote which won't work because i64 isn't a legal type. It's easy enough to use Custom, but then we have the problem that when the type legalizer is promoting FP_TO_UINT->i16, it has no way of telling it should prefer FP_TO_SINT->i32 to FP_TO_UINT->i32. I have uncomfortably hacked this by making the type legalizer choose FP_TO_SINT when both are Custom. This fixes several regressions in the testsuite. llvm-svn: 72891
-
Evan Cheng authored
RALinScan::attemptTrivialCoalescing() was returning a virtual register instead of the physical register it is allocated to. This resulted in virtual register(s) being added the live-in sets. llvm-svn: 72890
-
Evan Cheng authored
A value defined by an implicit_def can be liven to a use BB. This is unfortunate. But register allocator still has to add it to the live-in set of the use BB. llvm-svn: 72889
-
Lang Hames authored
llvm-svn: 72880
-
Dan Gohman authored
instcombine doesn't know when it's safe. To partially compensate for this, introduce new code to do this transformation in dagcombine, which can use UnsafeFPMath. llvm-svn: 72872
-
Dan Gohman authored
llvm-svn: 72870
-
Dan Gohman authored
llvm-svn: 72828
-
Lang Hames authored
llvm-svn: 72825
-
- Jun 03, 2009
-
-
Bruno Cardoso Lopes authored
llvm-svn: 72785
-
Oscar Fuentes authored
llvm-svn: 72775
-
Evan Cheng authored
Fix for PR4225: When rewriter reuse a value in a physical register , it clear the register kill operand marker and its kill ops information. However, the cleared operand may be a def of a super-register. Clear the kill ops info for the super-register's sub-registers as well. llvm-svn: 72758
-
Evan Cheng authored
If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g. EAX = ..., AX<imp-def> ... = AX This creates a double-def. Apparently this used to be necessary but is no longer needed. Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me. llvm-svn: 72755
-
Bruno Cardoso Lopes authored
one new .cpp file, in preparation for merging in the Direct Object Emission changes we're working on. No functional changes. Fixed coding style issues on the original patch. Patch by Aaron Gray llvm-svn: 72754
-
- Jun 02, 2009
-
-
Lang Hames authored
llvm-svn: 72735
-
Lang Hames authored
llvm-svn: 72729
-
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
-
- Jun 01, 2009
-
-
Bill Wendling authored
llvm-svn: 72699
-
- May 31, 2009
-
-
Duncan Sands authored
it is used both when a result is illegal and when an operand is illegal. llvm-svn: 72658
-
Bruno Cardoso Lopes authored
llvm-svn: 72650
-
- May 30, 2009
-
-
Bruno Cardoso Lopes authored
JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray llvm-svn: 72631
-
Bill Wendling authored
llvm-svn: 72604
-
- May 29, 2009
-
-
Evan Cheng authored
llvm-svn: 72557
-
- May 28, 2009
-
-
Eli Friedman authored
This patch removes some special cases for opcodes and does a bit of cleanup. llvm-svn: 72536
-
Evan Cheng authored
llvm-svn: 72533
-
Bill Wendling authored
failure during llvm-gcc bootstrap: Assertion failed: (!Tmp2.getNode() && "Can't legalize BR_CC with legal condition!"), function ExpandNode, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 2923. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:1727: 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. llvm-svn: 72530
-
Eli Friedman authored
llvm-svn: 72516
-
Eli Friedman authored
This is basically the end of this series of patches for LegalizeDAG; the remaining special cases can't be removed without more infrastructure work. There's a FIXME for each relevant opcode near the beginning of SelectionDAGLegalize::LegalizeOp. llvm-svn: 72514
-
Eli Friedman authored
some special cases are necessary. llvm-svn: 72511
-
Eli Friedman authored
llvm-svn: 72509
-
Evan Cheng authored
Added optimization that narrow load / op / store and the 'op' is a bit twiddling instruction and its second operand is an immediate. If bits that are touched by 'op' can be done with a narrower instruction, reduce the width of the load and store as well. This happens a lot with bitfield manipulation code. e.g. orl $65536, 8(%rax) => orb $1, 10(%rax) Since narrowing is not always a win, e.g. i32 -> i16 is a loss on x86, dag combiner consults with the target before performing the optimization. llvm-svn: 72507
-
- May 27, 2009
-
-
Eli Friedman authored
BUILD_VECTOR. llvm-svn: 72469
-
Eli Friedman authored
llvm-svn: 72468
-
Eli Friedman authored
llvm-svn: 72467
-
Eli Friedman authored
llvm-svn: 72465
-
Eli Friedman authored
llvm-svn: 72464
-
Eli Friedman authored
llvm-svn: 72456
-
Eli Friedman authored
llvm-svn: 72455
-
Eli Friedman authored
llvm-svn: 72454
-