summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove dead code in GVN: now that SimplifyInstruction is calledDuncan Sands2010-11-171-43/+2
| | | | | | | | | | systematically, CollapsePhi will always return null here. Note that CollapsePhi did an extra check, isSafeReplacement, which the SimplifyInstruction logic does not do. I think that check was bogus - I guess we will soon find out! (It was originally added in commit 41998 without a testcase). llvm-svn: 119456
* Memoize results from ScalarEvolution's getUnsignedRange and getSignedRange.Dan Gohman2010-11-171-43/+80
| | | | | | This fixes some extreme compile times on unrolled sha512 code. llvm-svn: 119455
* Only avoid the check if we're the last operand before the variableEric Christopher2010-11-171-3/+3
| | | | | | operands in a variadic instruction. llvm-svn: 119446
* Add binary emission stuff for VLDM/VSTM. This reuses theBill Wendling2010-11-172-6/+49
| | | | | | | "getRegisterListOpValue" logic. If the registers are double or single precision, the value returned is suitable for VLDM/VSTM. llvm-svn: 119435
* Fix typo: Exectuable -> ExecutablePeter Collingbourne2010-11-172-2/+2
| | | | llvm-svn: 119433
* Use the correct variable names so that the encodings will be correct.Bill Wendling2010-11-162-4/+4
| | | | llvm-svn: 119403
* Reapply r118917. With pseudo-instruction expansion moved toDan Gohman2010-11-161-5/+5
| | | | | | | a different pass, the complicated interaction between cmov expansion and fast isel is no longer a concern. llvm-svn: 119400
* Fix assembling X86CompilationCallback_Win64.asm on VS 10.Oscar Fuentes2010-11-161-2/+2
| | | | | | Patch by Louis Zhuang! llvm-svn: 119394
* Fix grammaro.Dan Gohman2010-11-161-1/+1
| | | | llvm-svn: 119386
* Add ExpandPseudos.cpp.Evan Cheng2010-11-161-0/+1
| | | | llvm-svn: 119385
* Add .loc methods to the streamer.Rafael Espindola2010-11-1611-26/+77
| | | | | | | Next: Add support for the !HasDotLocAndDotFile case to the MCAsmStreamer and then switch codegen to use it. llvm-svn: 119384
* Split pseudo-instruction expansion into a separate pass, to make itDan Gohman2010-11-163-13/+87
| | | | | | | easier to debug, and to avoid complications when the CFG changes in the middle of the instruction selection process. llvm-svn: 119382
* Fix emergency spilling in LiveIntervals::spillPhysRegAroundRegDefsUses.Jakob Stoklund Olesen2010-11-161-22/+23
| | | | | | | | | | | | | | Always spill the full representative register at any point where any subregister is live. This fixes PR8620 which caused the old logic to get confused and not spill anything at all. The fundamental problem here is that the coalescer is too aggressive about physical register coalescing. It sometimes makes it impossible to allocate registers without these emergency spills. llvm-svn: 119375
* Print out the register class of the current interval.Jakob Stoklund Olesen2010-11-161-2/+3
| | | | llvm-svn: 119374
* Parse and ignore some .cfi_* directives.Rafael Espindola2010-11-161-0/+95
| | | | llvm-svn: 119362
* This is the first step in adding sane error handling support to LLVMSystem.Michael J. Spencer2010-11-164-0/+298
| | | | | | | | | | | | | | | | | The system API's will be shifted over to returning an error_code, and returning other return values as out parameters to the function. Code that needs to check error conditions will use the errc enum values which are the same as the posix_errno defines (EBADF, E2BIG, etc...), and are compatable with the error codes in WinError.h due to some magic in system_error. An example would be: if (error_code ec = KillEvil("Java")) { // error_code can be converted to bool. handle_error(ec); } llvm-svn: 119360
* ARM conditional mov encoding fix.Jim Grosbach2010-11-161-2/+1
| | | | llvm-svn: 119354
* Have a few places that want to simplify phi nodes use SimplifyInstructionDuncan Sands2010-11-165-13/+18
| | | | | | rather than calling hasConstantValue. No intended functionality change. llvm-svn: 119352
* In which I discover the existence of loops. Threading an operationDuncan Sands2010-11-162-62/+104
| | | | | | | | | | | over a phi node by applying it to each operand may be wrong if the operation and the phi node are mutually interdependent (the testcase has a simple example of this). So only do this transform if it would be correct to perform the operation in each predecessor of the block containing the phi, i.e. if the other operands all dominate the phi. This should fix the FFMPEG snow.c regression reported by İsmail Dönmez. llvm-svn: 119347
* A bit more of gnu as compatibility when handling relocations with aliases.Rafael Espindola2010-11-161-2/+5
| | | | llvm-svn: 119328
* L_bit doesn't work here.Bill Wendling2010-11-161-1/+1
| | | | llvm-svn: 119325
* - Remove dead patterns.Bill Wendling2010-11-163-43/+19
| | | | | | - Add encodings to the *LDMIA_RET instrs. Probably not needed... llvm-svn: 119323
* vldm and vstm are mnemonics for vldmia and vstmia resp.Bill Wendling2010-11-161-0/+3
| | | | llvm-svn: 119321
* Make the verifier a little quieter on instructions that it's probablyEric Christopher2010-11-161-1/+3
| | | | | | (and likely) wrong about anyhow. llvm-svn: 119320
* Fix a bug I introduced in the ppc refactoring, which caused longChris Lattner2010-11-161-0/+1
| | | | | | | | | | branches to be emitted as: bne cr0, 2 instead of: bne cr0, $+8 llvm-svn: 119317
* Encode the multi-load/store instructions with their respective modes ('ia',Bill Wendling2010-11-1612-536/+562
| | | | | | | | | 'db', 'ib', 'da') instead of having that mode as a separate field in the instruction. It's more convenient for the asm parser and much more readable for humans. <rdar://problem/8654088> llvm-svn: 119310
* Object: Get rid of sys::Path, Triple, and cleanup namespace.Michael J. Spencer2010-11-161-7/+5
| | | | llvm-svn: 119309
* add copy of comment to the code that will survive the mcjit'izationChris Lattner2010-11-161-0/+2
| | | | llvm-svn: 119308
* relax an assertion a bit, allowing the GPR argument ofChris Lattner2010-11-162-2/+6
| | | | | | | | these instructions to be encoded with getMachineOpValue. This unbreaks ExecutionEngine/2003-01-04-ArgumentBug.ll when running on a G5 llvm-svn: 119307
* Remember to resize SpillSlotToUsesMap when allocating an emergency spill slot.Jakob Stoklund Olesen2010-11-162-19/+19
| | | | | | | | | Use amazing new function call technology instead of writing identical code in multiple places. This fixes PR8604. llvm-svn: 119306
* Fix PR8612 in the standard spiller, take two.Jakob Stoklund Olesen2010-11-161-1/+8
| | | | | | | | | | The live range of a register defined by an early clobber starts at the use slot, not the def slot. Except when it is an early clobber tied to a use operand. Then it starts at the def slot like a standard def. llvm-svn: 119305
* Add Thumb2 encodings for mov and friends.Owen Anderson2010-11-161-23/+50
| | | | llvm-svn: 119295
* Change the 11 byte nop to be a single instruction.Rafael Espindola2010-11-151-4/+2
| | | | llvm-svn: 119286
* fix a pasto that massively broke the ppc jit while the buildbots happenedChris Lattner2010-11-151-2/+2
| | | | | | to be broken for other reasons llvm-svn: 119283
* Revert "Fix PR8612 in the standard spiller as well."Jakob Stoklund Olesen2010-11-151-5/+1
| | | | | | This reverts r119183 which borke the buildbots. llvm-svn: 119270
* Attempt to provide encodings for some miscellaneous Thumb2 encodings.Owen Anderson2010-11-151-14/+29
| | | | llvm-svn: 119187
* Code clean up. The peephole pass should be the one updating the instructionEvan Cheng2010-11-153-24/+18
| | | | | | iterator, not TII->OptimizeCompareInstr. llvm-svn: 119186
* Provide Thumb2 encodings for sxtb and friends.Owen Anderson2010-11-151-32/+42
| | | | llvm-svn: 119185
* Recommit this change and remove the failing part of the test - it didn'tEric Christopher2010-11-151-4/+5
| | | | | | | pass in the first place and was masked by earlier failures not warning and aborting the block. llvm-svn: 119184
* Fix PR8612 in the standard spiller as well.Jakob Stoklund Olesen2010-11-151-1/+5
| | | | | | | The live range of a register defined by an early clobber starts at the use slot, not the def slot. llvm-svn: 119183
* When spilling a register defined by an early clobber, make sure that the newJakob Stoklund Olesen2010-11-151-0/+6
| | | | | | | | | | | | | live ranges for the spill register are also defined at the use slot instead of the normal def slot. This fixes PR8612 for the inline spiller. A use was being allocated to the same register as a spilled early clobber def. This problem exists in all the spillers. A fix for the standard spiller is forthcoming. llvm-svn: 119182
* ARM LDR_PRE/LDR_POST/STR_PRE/STR_POST (and the *B counterparts) binary encoding.Jim Grosbach2010-11-154-38/+151
| | | | llvm-svn: 119180
* Add Thumb2 encodings for comparison and shift operators.Owen Anderson2010-11-151-36/+106
| | | | llvm-svn: 119176
* Fix compiler warnigns.Benjamin Kramer2010-11-151-2/+2
| | | | llvm-svn: 119175
* Add correct Thumb2 encodings for mvn and friends.Owen Anderson2010-11-151-11/+80
| | | | llvm-svn: 119170
* Add FIXMEs.Jim Grosbach2010-11-151-0/+4
| | | | llvm-svn: 119167
* Nuke redundant encoding bit set.Jim Grosbach2010-11-151-3/+1
| | | | llvm-svn: 119164
* Teach InstructionSimplify the trick of skipping incoming phiDuncan Sands2010-11-151-4/+9
| | | | | | values that are equal to the phi itself. llvm-svn: 119161
* Change MCExpr::EvaluateAsRelocatableImpl of variables to return the originalRafael Espindola2010-11-155-116/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | variable if recursing fails to simplify it. Factor AliasedSymbol to be a method of MCSymbol. Update MCAssembler::EvaluateFixup to match the change in EvaluateAsRelocatableImpl. Remove the WeakRefExpr hack, as the object writer now sees the weakref with no extra effort needed. Nothing else is using MCTargetExpr, but keep it for now. Now that the ELF writer sees relocations with aliases, handle .weak foo2 foo2: .weak bar2 .set bar2,foo2 .quad bar2 the same way gas does and produce a relocation with bar2. llvm-svn: 119152
* Dovetail with Dan Dunbar's rework of ELFObjectWriter.Jason W Kim2010-11-151-223/+311
| | | | | | | Added 2 new subclasses - X86ELFObjectWriter and ARMELFObectWriter. ARM and X86 require different code for RecordRelocation(), possibly others. llvm-svn: 119149
OpenPOWER on IntegriCloud