aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* restrict dyn_cast_or_null to pointer types, just like cast_or_null; ↵Gabor Greif2010-09-181-2/+2
| | | | | | re-commit of r114279, backed out in r114280 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114282 91177308-0d34-0410-b5e6-96231b3b80d8
* back out r114279 as some darwin buildbots get errors compiling clang:Gabor Greif2010-09-181-2/+2
| | | | | | svn merge -c -114279 llvm/include/llvm/Support/Casting.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114280 91177308-0d34-0410-b5e6-96231b3b80d8
* restrict dyn_cast_or_null to pointer types, just like cast_or_nullGabor Greif2010-09-181-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114279 91177308-0d34-0410-b5e6-96231b3b80d8
* remove CallSite::get; it is still present (as protected) in the baseclass, ↵Gabor Greif2010-09-181-12/+2
| | | | | | use one of the constructors intead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114275 91177308-0d34-0410-b5e6-96231b3b80d8
* Added a separate class (PBQPBuilder) for PBQP Problem construction. This ↵Lang Hames2010-09-187-0/+2389
| | | | | | | | | | | | | | class can be extended to support custom constraints. For now the allocator still uses the old (internal) construction mechanism by default. This will be phased out soon assuming no issues with the builder system come up. To invoke the new construction mechanism just pass '-regalloc=pbqp -pbqp-builder' to llc. To provide custom constraints a Target just needs to extend PBQPBuilder and pass an instance of their derived builder to the RegAllocPBQP constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114272 91177308-0d34-0410-b5e6-96231b3b80d8
* trailing whitespaceJim Grosbach2010-09-171-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114211 91177308-0d34-0410-b5e6-96231b3b80d8
* Attempt to support platforms which don't have fenv.h.Dan Gohman2010-09-173-0/+56
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114196 91177308-0d34-0410-b5e6-96231b3b80d8
* fix comments; patch by Edmund Grimley-Evans\!Gabor Greif2010-09-171-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114189 91177308-0d34-0410-b5e6-96231b3b80d8
* Add "pointer to x86mmx" type to the intrinsics.Bill Wendling2010-09-171-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114140 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not expose the locking for the PassRegistry in the header. Be careful toOwen Anderson2010-09-161-2/+0
| | | | | | | synchronize any method that might lazily initialize the pImpl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114130 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a pass which prints out all the memdep dependencies.Dan Gohman2010-09-162-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114121 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r114097, adding back in the assertion against replacing an ↵Owen Anderson2010-09-162-0/+6
| | | | | | | | | | Instruction by itself. Now that CorrelatedValuePropagation is more careful not to call SimplifyInstructionsInBlock() on an unreachable block, the issue has been fixed at a higher level. Add a big warning to SimplifyInstructionsInBlock() to hopefully prevent this in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114117 91177308-0d34-0410-b5e6-96231b3b80d8
* make this non brain dead... Jim Grosbach2010-09-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114100 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary by-reference return.Jim Grosbach2010-09-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114099 91177308-0d34-0410-b5e6-96231b3b80d8
* Add better support for environment portion of triple. Original patch byDuncan Sands2010-09-161-1/+34
| | | | | | | Cameron Esfahani, tweaked to use array_lengthof. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114073 91177308-0d34-0410-b5e6-96231b3b80d8
* store MC FP immediates as a double instead of as an APFloat, thus avoiding anJim Grosbach2010-09-161-7/+4
| | | | | | unnecessary dtor for MCOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114064 91177308-0d34-0410-b5e6-96231b3b80d8
* Since PassRegistry is currently a shared global object, it needs locking. ↵Owen Anderson2010-09-151-0/+2
| | | | | | | | | | While it might intuitively seem that all the setup of this class currently happens at static initialization time, this misses the fact that some later events can cause mutation of the PassRegistrationListeners list, and thus cause race issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114036 91177308-0d34-0410-b5e6-96231b3b80d8
* System/Path: Add isObjectFile().Michael J. Spencer2010-09-151-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114032 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a InitSections method to the streamer interface.Rafael Espindola2010-09-151-0/+3
| | | | | | | | | | | | | | The ELF implementation now creates text, data and bss to match the gnu as behavior. The text streamer still has the old MachO specific behavior since the testsuite checks that it will error when a directive is given before a setting the current section for example. A nice benefit is that -n is not required anymore when producing ELF files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114027 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for floating point immediates to MC instruction printing. ARMJim Grosbach2010-09-151-1/+23
| | | | | | | | | | | | | VFP instructions use it for loading some constants, so implement that handling. Not thrilled with adding a member to MCOperand, but not sure there's much of a better option that's not pretty fragile (like putting a double in the union instead and just assuming that's good enough). Suggestions welcome... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113996 91177308-0d34-0410-b5e6-96231b3b80d8
* Spelling fix.Bob Wilson2010-09-151-11/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113978 91177308-0d34-0410-b5e6-96231b3b80d8
* trailing whitespace and 80 column cleanupJim Grosbach2010-09-152-33/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113977 91177308-0d34-0410-b5e6-96231b3b80d8
* trailing whitespaceJim Grosbach2010-09-151-49/+49
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113975 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove LLVM_GLOBAL_VISIBILITY, which is unused, and was not working properly.Duncan Sands2010-09-151-11/+1
| | | | | | | | | | | | | | The problem was that the test for whether a compiler supports it or not was inaccurate, but has to be accurate: LLVM_LOCAL_VISIBILITY is an optimization and not needed for correctness, so wrongly thinking a compiler doesn't support it is not a big deal, but LLVM_GLOBAL_VISIBILITY is for correctness, and not an optimization: getting it wrong is fatal: it needs to be set based on a configure test not testing the gcc version. Since dragonegg has moved to a different scheme, and it was the only user of LLVM_GLOBAL_VISIBILITY, just remove this macro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113959 91177308-0d34-0410-b5e6-96231b3b80d8
* Add x86MMX a few more places.Dale Johannesen2010-09-151-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113914 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing include.Benjamin Kramer2010-09-141-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113859 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the experimental AliasAnalysis::getDependency interface, whichDan Gohman2010-09-144-131/+113
| | | | | | | | | | | | isn't a good level of abstraction for memdep. Instead, generalize AliasAnalysis::alias and related interfaces with a new Location class for describing a memory location. For now, this is the same Pointer and Size as before, plus an additional field for a TBAA tag. Also, introduce a fixed MD_tbaa metadata tag kind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113858 91177308-0d34-0410-b5e6-96231b3b80d8
* Prune includes.Benjamin Kramer2010-09-143-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113850 91177308-0d34-0410-b5e6-96231b3b80d8
* After Dan's recent commit this is no longer true.Devang Patel2010-09-141-3/+0
| | | | | | | Now isFunctionLocal is reset, if required, when operands are modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113845 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove apparently unnecessary forward declaration.Eric Christopher2010-09-141-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113827 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix linux/msvc build, move include.Benjamin Kramer2010-09-132-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113776 91177308-0d34-0410-b5e6-96231b3b80d8
* Attempt to fix the Linux build.Owen Anderson2010-09-131-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113773 91177308-0d34-0410-b5e6-96231b3b80d8
* Minimize #includes in a top-level header.Owen Anderson2010-09-131-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113772 91177308-0d34-0410-b5e6-96231b3b80d8
* Added skeleton for inline asm multiple alternative constraint support.John Thompson2010-09-132-0/+64
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113766 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comment typo.Dale Johannesen2010-09-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113728 91177308-0d34-0410-b5e6-96231b3b80d8
* fix the asmparser so that the target is responsible for skipping toChris Lattner2010-09-111-0/+4
| | | | | | | | | | | | | | | the end of the line on a parser error, allowing skipping to happen for syntactic errors but not for semantic errors. Before we would miss emitting a diagnostic about the second line, because we skipped it due to the semantic error on the first line: foo %eax bar %al This fixes rdar://8414033 - llvm-mc ignores lines after an invalid instruction mnemonic errors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113688 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename ConvertToSetZeroFlag to something more general.Bill Wendling2010-09-111-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113670 91177308-0d34-0410-b5e6-96231b3b80d8
* No need to recompute the SrcReg and CmpValue.Bill Wendling2010-09-101-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113666 91177308-0d34-0410-b5e6-96231b3b80d8
* Move some of the decision logic for converting an instruction into one that setsBill Wendling2010-09-101-5/+4
| | | | | | | | the 'zero' bit down into the back-end. There are other cases where this logic isn't sufficient, so they should be handled separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113665 91177308-0d34-0410-b5e6-96231b3b80d8
* typoesGabor Greif2010-09-102-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113647 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing X86 MMX declarations. Hopefully fixes buildbot?Dale Johannesen2010-09-101-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113643 91177308-0d34-0410-b5e6-96231b3b80d8
* Modify the comparison optimizations in the peephole optimizer to update theBill Wendling2010-09-101-3/+5
| | | | | | | | iterator when an optimization took place. This allows us to do more insane things with the code than just remove an instruction or two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113640 91177308-0d34-0410-b5e6-96231b3b80d8
* Add X86 MMX type to bitcode and Type.Dale Johannesen2010-09-104-10/+25
| | | | | | | | | (The Ada bindings probably need it too, but all the obvious places to change say "do not edit this file".) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113618 91177308-0d34-0410-b5e6-96231b3b80d8
* Auto-upgrade the magic ".llvm.eh.catch.all.value" global toBill Wendling2010-09-101-0/+5
| | | | | | | "llvm.eh.catch.all.value". Only the name needs to be changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113600 91177308-0d34-0410-b5e6-96231b3b80d8
* x86mmx is 64 bits.Dale Johannesen2010-09-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113594 91177308-0d34-0410-b5e6-96231b3b80d8
* add a comment explicitly calling out that allocation orders may includeJim Grosbach2010-09-101-3/+6
| | | | | | | reserved regs and that register allocators need to explicitly check for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113593 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach if-converter to be more careful with predicating instructions that wouldEvan Cheng2010-09-104-7/+15
| | | | | | | | | | | | take multiple cycles to decode. For the current if-converter clients (actually only ARM), the instructions that are predicated on false are not nops. They would still take machine cycles to decode. Micro-coded instructions such as LDM / STM can potentially take multiple cycles to decode. If-converter should take treat them as non-micro-coded simple instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113570 91177308-0d34-0410-b5e6-96231b3b80d8
* Discard metadata produced by LLVM 2.7. The value enumeration it usedDan Gohman2010-09-091-7/+21
| | | | | | | | | | | | | | is different from what the code now uses in a two ways: NamedMDNodes were considered Values and included in the numbering, and the function-local metadata counter wasn't reset between functions. The later problem breaks lazy deserialization, so instead of trying to emulate the old numbering, just drop the old metadata. The only in-tree use case is debug info with LTO, where the QOI loss is considered acceptable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113557 91177308-0d34-0410-b5e6-96231b3b80d8
* What the loop unroller cares about, rather than just not unrolling loops ↵Owen Anderson2010-09-091-1/+7
| | | | | | | | | | | | with calls, is not unrolling loops that contain calls that would be better off getting inlined. This mostly comes up when an interleaved devirtualization pass has devirtualized a call which the inliner will inline on a future pass. Thus, rather than blocking all loops containing calls, add a metric for "inline candidate calls" and block loops containing those instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113535 91177308-0d34-0410-b5e6-96231b3b80d8
* Extend the getDependence query with support for PHI translation.Dan Gohman2010-09-091-2/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113521 91177308-0d34-0410-b5e6-96231b3b80d8