aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Thread the determination of branch prediction hit rates back through the ↵Owen Anderson2010-10-011-6/+9
| | | | | | | | | | if-conversion heuristic APIs. For now, stick with a constant estimate of 90% (branch predictors are good!), but we might find that we want to provide more nuanced estimates in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115364 91177308-0d34-0410-b5e6-96231b3b80d8
* Massive rewrite of MMX: Dale Johannesen2010-09-301-167/+143
| | | | | | | | | | | | | | | | | | | | | The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115243 91177308-0d34-0410-b5e6-96231b3b80d8
* Comments about operand cycles and pipeline forwarding pathes.Evan Cheng2010-09-301-1/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115214 91177308-0d34-0410-b5e6-96231b3b80d8
* Did my commit for the last patch for the .loc directory from the wrong place andKevin Enderby2010-09-306-5/+116
| | | | | | | missed a bunch of files. Here the rest. Sorry about that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115173 91177308-0d34-0410-b5e6-96231b3b80d8
* Adds getPointerSize() to the AsmBackend which will be needed by the final patchKevin Enderby2010-09-301-0/+3
| | | | | | | for the dwarf .loc support to emit dwarf line number tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115153 91177308-0d34-0410-b5e6-96231b3b80d8
* Move logic of determining ELF entsize from the .s printer to initializationJan Wen Voung2010-09-301-0/+4
| | | | | | | | | time. That way, the EntrySize field is initialized for other code paths, namely, the .ll -> .o code path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115141 91177308-0d34-0410-b5e6-96231b3b80d8
* Tiny patch for proof-of-concept cleanup of ARMAsmPrinter::EmitStartOfAsmFile()Jason W Kim2010-09-301-0/+1
| | | | | | | | | Small test for sanity check of resulting ARM .s file. Tested against -r115129. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115133 91177308-0d34-0410-b5e6-96231b3b80d8
* Make it possible for the MCObjectWriter to decide if a given fixup is fullyRafael Espindola2010-09-304-5/+28
| | | | | | | | | | | resolved or not. Different object files have different restrictions and different native assemblers have different idiosyncrasies we want to emulate for now. Move the existing MachO logic to the new place and implement an ELF one that gets fixups to globals right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115131 91177308-0d34-0410-b5e6-96231b3b80d8
* Let a target specify whether it wants an assembly printer to be the MC versionJim Grosbach2010-09-301-0/+5
| | | | | | | | | or not. TableGen needs to generate the printInstruction() function as taking an MCInstr* or a MachineInstr*, depending. Default to the old non-MC version so that everything not yet using MC continues to just work without fidding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115126 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r115099 (adding early jump threading). It's not clear if the ↵Owen Anderson2010-09-291-1/+0
| | | | | | benefits are worth the compile time cost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115106 91177308-0d34-0410-b5e6-96231b3b80d8
* Let FE mark a variable as artificial variable.Devang Patel2010-09-291-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115102 91177308-0d34-0410-b5e6-96231b3b80d8
* Early CFG simplification can fold conditionals down to selects, which is ↵Owen Anderson2010-09-291-0/+1
| | | | | | | | | | | often a good thing, but it can also hide jump threading opportunities by turning control flow into data flow. Run an early JumpThreading pass (adds approximately an additional 1% to optimization time on SPEC), allowing it to get a shot at these cases first. Fixes <rdar://problem/8447345>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115099 91177308-0d34-0410-b5e6-96231b3b80d8
* Model Cortex-a9 load to SUB, RSB, ADD, ADC, SBC, RSC, CMN, MVN, or CMPEvan Cheng2010-09-291-3/+52
| | | | | | | pipeline forwarding path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115098 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to let FE encode method access specifier.Devang Patel2010-09-291-1/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115089 91177308-0d34-0410-b5e6-96231b3b80d8
* Generalize DISubprogram element to encode various flags instead of just one ↵Devang Patel2010-09-292-14/+19
| | | | | | | | | boolean for isArtificial. This is a backword compatible change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115084 91177308-0d34-0410-b5e6-96231b3b80d8
* remove PointerTracking from mainline, Edwin is going to move it out to ClamAVChris Lattner2010-09-292-134/+0
| | | | | | | for LLVM 2.9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115062 91177308-0d34-0410-b5e6-96231b3b80d8
* implement rdar://8456378 and PR7557 - support for the fstsw,Chris Lattner2010-09-291-1/+1
| | | | | | | | an instruction that requires a WHOLE NEW wonderful kind of alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115015 91177308-0d34-0410-b5e6-96231b3b80d8
* change the protocol TargetAsmPArser::MatchInstruction method to take anChris Lattner2010-09-291-7/+7
| | | | | | | | MCStreamer to emit into instead of an MCInst to fill in. This allows the matcher extra flexibility and is more convenient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115014 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to model pipeline bypass / forwarding.Evan Cheng2010-09-281-3/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115005 91177308-0d34-0410-b5e6-96231b3b80d8
* Part one of switching to using a more sane heuristic for determining ↵Owen Anderson2010-09-281-6/+12
| | | | | | | | | | | | if-conversion profitability. Rather than having arbitrary cutoffs, actually try to cost model the conversion. For now, the constants are tuned to more or less match our existing behavior, but these will be changed to reflect realistic values as this work proceeds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114973 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide an interface to let FEs anchor debug info for types.Devang Patel2010-09-281-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114969 91177308-0d34-0410-b5e6-96231b3b80d8
* MC/AsmParser: Handle exponents in floating point literals.Daniel Dunbar2010-09-271-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114861 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused argument.Rafael Espindola2010-09-271-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114852 91177308-0d34-0410-b5e6-96231b3b80d8
* Push twines deeper into SourceMgr's error handling methods.Benjamin Kramer2010-09-271-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114847 91177308-0d34-0410-b5e6-96231b3b80d8
* writeGraph doesn't need its ShortNames argument.Dan Gohman2010-09-271-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114842 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't construct a redundant GraphWriter object.Dan Gohman2010-09-271-7/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114838 91177308-0d34-0410-b5e6-96231b3b80d8
* Factor out code from the standalone WriteGraph function into a helperDan Gohman2010-09-271-10/+20
| | | | | | | function on GraphWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114837 91177308-0d34-0410-b5e6-96231b3b80d8
* Constify properlyDominates in the same manner as dominates.Dan Gohman2010-09-271-3/+22
| | | | | | | Add constified overloads for findNearestCommonDominator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114834 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for viewing graphviz graphs with xdot.py.Dan Gohman2010-09-271-3/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114832 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an all() method to BitVector, for testing whether all bits are set.Dan Gohman2010-09-272-0/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114830 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove WriteGraph's Name argument, which it didn't use, andDan Gohman2010-09-272-8/+7
| | | | | | | | rename writeHeader's Name argument to Title, to be consistent with WriteGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114829 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix indentation.Dan Gohman2010-09-271-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114827 91177308-0d34-0410-b5e6-96231b3b80d8
* the latest assembler that runs on powerpc 10.4 machines doesn'tChris Lattner2010-09-272-0/+11
| | | | | | | | support aligned comm. Detect when compiling for 10.4 and don't emit an alignment for comm. THis will hopefully fix PR8198. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114817 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid warnings about implicit conversions to `bool' in MSVC. This timeOscar Fuentes2010-09-253-4/+4
| | | | | | | | for real. Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114796 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid using VNInfo::getCopy as much as possible. I want to get rid of it.Jakob Stoklund Olesen2010-09-251-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114794 91177308-0d34-0410-b5e6-96231b3b80d8
* Removed VNInfo::isDefAccurate(). Def "accuracy" can be checked by testing ↵Lang Hames2010-09-251-28/+3
| | | | | | whether LiveIntervals::getInstructionFromIndex(def) returns NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114791 91177308-0d34-0410-b5e6-96231b3b80d8
* Add ret instruction to PTX backendChe-Liang Chiou2010-09-251-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114788 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing spaces of CallingConv.hChe-Liang Chiou2010-09-251-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114787 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove SlotIndex::PHI_BIT. It is no longer used by anything.Jakob Stoklund Olesen2010-09-251-28/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114779 91177308-0d34-0410-b5e6-96231b3b80d8
* Terminator gaps were unused. Might as well delete them.Jakob Stoklund Olesen2010-09-242-21/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114776 91177308-0d34-0410-b5e6-96231b3b80d8
* Attach a DebugLoc to a GC point in order to get precise information in the ↵Nicolas Geoffray2010-09-241-3/+6
| | | | | | JIT of a GC point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114736 91177308-0d34-0410-b5e6-96231b3b80d8
* MC/Lexer: Add 'Real' token type for floating point literals.Daniel Dunbar2010-09-241-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114718 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r114703 and r114702, removing the isConditionalMove flag from ↵Owen Anderson2010-09-232-8/+0
| | | | | | | | | instructions. After further reflection, this isn't going to achieve the purpose I intended it for. Back to the drawing board! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114710 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an TargetInstrDesc bit to indicate that a given instruction is a ↵Owen Anderson2010-09-232-0/+8
| | | | | | | | | conditional move. Not intended functionality change, as nothing uses this yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114702 91177308-0d34-0410-b5e6-96231b3b80d8
* trailing whitespaceJim Grosbach2010-09-231-28/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114680 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid warnings about conversions to `bool' in MS compilers.Oscar Fuentes2010-09-232-2/+2
| | | | | | Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114662 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved the PBQP allocator class out of the header and back in to the cpp file ↵Lang Hames2010-09-233-121/+3
| | | | | | | | | | | | | | | | to hide the gory details. Allocator instances can now be created by calling createPBQPRegisterAllocator. Tidied up use of CoalescerPair as per Jakob's suggestions. Made the new PBQPBuilder based construction process the default. The internal construction process remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new process doesn't cause any regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114626 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for ELF PLT references for ARM MC asm printing. Adding aJim Grosbach2010-09-221-0/+1
| | | | | | | | | | new VariantKind to the MCSymbolExpr seems like overkill, but I'm not sure there's a more straightforward way to get the printing difference captured. (i.e., x86 uses @PLT, ARM uses (PLT)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114613 91177308-0d34-0410-b5e6-96231b3b80d8
* Make SetVector's remove indicate whether it actually removed something.Dan Gohman2010-09-221-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114612 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid some Mach-O specific alignment being done on ELF.Rafael Espindola2010-09-222-2/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114594 91177308-0d34-0410-b5e6-96231b3b80d8