- Aug 07, 2012
-
-
Jack Carter authored
I hit this in a very large program (spirit.cpp), but have not figured out how to make a small make check test for it. llvm-svn: 161366
-
Jack Carter authored
were using a class defined for 32 bit instructions and thus the instruction was for addiu instead of daddiu. This was corrected by adding the instruction opcode as a field in the base class to be filled in by the defs. llvm-svn: 161359
-
Bill Wendling authored
llvm-svn: 161356
-
Jakob Stoklund Olesen authored
llvm-svn: 161354
-
- Aug 06, 2012
-
-
Bill Wendling authored
When the command line target options were removed from the LLVM libraries, LTO lost its ability to specify things like `-disable-fp-elim'. Add this back by adding the command line variables to the `lto' project. <rdar://problem/12038729> llvm-svn: 161353
-
Jack Carter authored
These 2 relocations gain access to the highest and the second highest 16 bits of a 64 bit object. R_MIPS_HIGHER %higher(A+S) The %higher(x) function is [ (((long long) x + 0x80008000LL) >> 32) & 0xffff ]. R_MIPS_HIGHEST %highest(A+S) The %highest(x) function is [ (((long long) x + 0x800080008000LL) >> 48) & 0xffff ]. llvm-svn: 161348
-
Hal Finkel authored
The MFTB instruction itself is being phased out, and its functionality is provided by MFSPR. According to the ISA docs, using MFSPR works on all known chips except for the 601 (which did not have a timebase register anyway) and the POWER3. Thanks to Adhemerval Zanella for pointing this out! llvm-svn: 161346
-
Eric Christopher authored
Patch by David Hill. llvm-svn: 161344
-
Simon Atanasyan authored
The patch reviewed by Akira Hatanaka. llvm-svn: 161332
-
Jakob Stoklund Olesen authored
llvm-svn: 161329
-
Roman Divacky authored
llvm-svn: 161328
-
Craig Topper authored
Implement proper handling for pcmpistri/pcmpestri intrinsics. Requires custom handling in DAGISelToDAG due to limitations in TableGen's implicit def handling. Fixes PR11305. llvm-svn: 161318
-
- Aug 05, 2012
-
-
Craig Topper authored
llvm-svn: 161307
-
Craig Topper authored
llvm-svn: 161306
-
Craig Topper authored
Use a COPY node instead of an explicit MOVA opcode in the custom insterter for pcmpestrm/pcmpistrm. Allows the register allocator to handle it better and prevent wasted identity moves. llvm-svn: 161305
-
- Aug 04, 2012
-
-
Hal Finkel authored
On PPC64, this can be done with a simple TableGen pattern. To enable this, I've added the (otherwise missing) readcyclecounter SDNode definition to TargetSelectionDAG.td. llvm-svn: 161302
-
Anton Korobeynikov authored
llvm-svn: 161301
-
Anton Korobeynikov authored
(this corresponds by spilling/reloading regs in DTriple / DQuad reg classes). No testcase, found by inspection. llvm-svn: 161300
-
Anton Korobeynikov authored
were missed for no reason. This fixes PR13377 llvm-svn: 161299
-
Bill Wendling authored
llvm-svn: 161298
-
Benjamin Kramer authored
llvm-svn: 161297
-
Benjamin Kramer authored
Postpone the deletion of the old name in StructType::setName to allow using a slice of the old name. Fixes PR13522. Add a rudimentary unit test to exercise the behavior. llvm-svn: 161296
-
NAKAMURA Takumi authored
[CMake] add_lit_target: Remove comments about add_dependencies. It is not a bug in cmake that add_custom_target(DEPENDS) would not accept targets but file-level dependencies. llvm-svn: 161295
-
NAKAMURA Takumi authored
FIXME: Fix several tests on i686-win32 due to lacking of many libraries. llvm-svn: 161292
-
Jakob Stoklund Olesen authored
TwoAddressInstructionPass doesn't remat any more. llvm-svn: 161285
-
Jakob Stoklund Olesen authored
llvm-svn: 161284
-
Bob Wilson authored
This patch is mostly just refactoring a bunch of copy-and-pasted code, but it also adds a check that the call instructions are readnone or readonly. That check was already present for sin, cos, sqrt, log2, and exp2 calls, but it was missing for the rest of the builtins being handled in this code. llvm-svn: 161282
-
Jakob Stoklund Olesen authored
No functional change intended, except replacing a DenseMap with a SmallDenseMap which should behave identically. llvm-svn: 161281
-
Jakob Stoklund Olesen authored
This is far from complete, and only changes behavior when the -early-live-intervals flag is passed to llc. llvm-svn: 161273
-
Akira Hatanaka authored
Change these to patterns. 2. Add another 16 instructions. Patch by Reed Kotler. llvm-svn: 161272
-
Jakob Stoklund Olesen authored
This option runs LiveIntervals before TwoAddressInstructionPass which will eventually learn to exploit and update the analysis. Eventually, LiveIntervals will run before PHIElimination, and we can get rid of LiveVariables. llvm-svn: 161270
-
Jakob Stoklund Olesen authored
Previously, the identity copy would survive through register allocation before it was removed by the rewriter. llvm-svn: 161269
-
- Aug 03, 2012
-
-
Bob Wilson authored
The previous change caused fast isel to not attempt handling any calls to builtin functions. That included things like "printf" and caused some noticable regressions in compile time. I wanted to avoid having fast isel keep a separate list of functions that had to be kept in sync with what the code in SelectionDAGBuilder.cpp was handling. I've resolved that here by moving the list into TargetLibraryInfo. This is somewhat redundant in SelectionDAGBuilder but it will ensure that we keep things consistent. llvm-svn: 161263
-
Bob Wilson authored
I noticed that SelectionDAGBuilder::visitCall was missing a check for memcmp in TargetLibraryInfo, so that it would use custom code for memcmp calls even with -fno-builtin. I also had to add a new -disable-simplify-libcalls option to llc so that I could write a test for this. llvm-svn: 161262
-
Jakob Stoklund Olesen authored
The 'unused' state of a value number can be represented as an invalid def SlotIndex. This also exposed code that shouldn't have been looking at unused value VNInfos. llvm-svn: 161258
-
Jakob Stoklund Olesen authored
Unused VNInfos should be left alone. Their def SlotIndex doesn't point to anything. llvm-svn: 161257
-
Matt Beaumont-Gay authored
llvm-svn: 161256
-
Jakob Stoklund Olesen authored
The only real user of the flag was removeCopyByCommutingDef(), and it has been switched to LiveIntervals::hasPHIKill(). All the code changed by this patch was only concerned with computing and propagating the flag. llvm-svn: 161255
-
Jakob Stoklund Olesen authored
The VNInfo::HAS_PHI_KILL is only half supported. We precompute it in LiveIntervalAnalysis, but it isn't properly updated by live range splitting and functions like shrinkToUses(). It is only used in one place: RegisterCoalescer::removeCopyByCommutingDef(). This patch changes that function to use a new LiveIntervals::hasPHIKill() function that computes the flag for a given value number. llvm-svn: 161254
-
Eric Christopher authored
while building as requested by Lang. llvm-svn: 161253
-