summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
* Factor address mode matcher out of codegen prepare to make it available to ↵Evan Cheng2009-02-201-0/+102
| | | | | | other passes, e.g. loop strength reduction. llvm-svn: 65134
* Add an accessor method to DwarfWriter to tell of debugging info should be ↵Bill Wendling2009-02-201-0/+3
| | | | | | emitted. llvm-svn: 65092
* Add a default debug location object to the Machine Function. It's used to ↵Bill Wendling2009-02-201-0/+12
| | | | | | emit a default debugging label at the beginning of a function. llvm-svn: 65091
* Describe tail merging's use of InsertBranch.Dale Johannesen2009-02-191-6/+11
| | | | llvm-svn: 65062
* Print out a new label only if the debug location *tuple* is different. The debugBill Wendling2009-02-191-0/+7
| | | | | | locations may change, but the tuples may be the same. llvm-svn: 65039
* Put code that generates debug labels into TableGen so that it can be used byBill Wendling2009-02-181-5/+5
| | | | | | everyone. llvm-svn: 64978
* Use a sign-extend instead of a zero-extend when promoting aDan Gohman2009-02-181-0/+5
| | | | | | | | | | | | trip count value when the original loop iteration condition is signed and the canonical induction variable won't undergo signed overflow. This isn't required for correctness; it just preserves more information about original loop iteration values. Add a getTruncateOrSignExtend method to ScalarEvolution, following getTruncateOrZeroExtend. llvm-svn: 64918
* Clarify the definition of "latch block" in a comment.Dan Gohman2009-02-181-4/+4
| | | | llvm-svn: 64916
* Add explicit keywords.Dan Gohman2009-02-181-1/+1
| | | | llvm-svn: 64915
* Add support to the JIT for true non-lazy operation. When a call to a functionNate Begeman2009-02-184-0/+34
| | | | | | | | | | | | | | | | | | | | that has not been JIT'd yet, the callee is put on a list of pending functions to JIT. The call is directed through a stub, which is updated with the address of the function after it has been JIT'd. A new interface for allocating and updating empty stubs is provided. Add support for removing the ModuleProvider the JIT was created with, which would otherwise invalidate the JIT's PassManager, which is initialized with the ModuleProvider's Module. Add support under a new ExecutionEngine flag for emitting the infomration necessary to update Function and GlobalVariable stubs after JITing them, by recording the address of the stub and the name of the GlobalValue. This allows code to be copied from one address space to another, where libraries may live at different virtual addresses, and have the stubs updated with their new correct target addresses. llvm-svn: 64906
* Factor out the code to add a MachineOperand to a MachineInstrBuilder.Dan Gohman2009-02-181-2/+25
| | | | llvm-svn: 64891
* Eliminate several more unnecessary intptr_t casts.Dan Gohman2009-02-185-7/+7
| | | | llvm-svn: 64888
* allow TimeRegion to take a potentially-null pointer to aChris Lattner2009-02-181-4/+9
| | | | | | timer for clang. llvm-svn: 64874
* The debugger sometimes lookup dynamically in the runtime to find ivar info ↵Devang Patel2009-02-172-2/+9
| | | | | | | | of any Objective-C classes. It would be very helpful to debugger if the compiler encodes runtime version number in DWARF. Add support for two additional DWARF attributes to encode Objective-C runtime version number. llvm-svn: 64834
* Remove trailing whitespace to reduce later commit patch noise.Scott Michel2009-02-172-120/+120
| | | | | | | | (Note: Eventually, commits like this will be handled via a pre-commit hook that does this automagically, as well as expand tabs to spaces and look for 80-col violations.) llvm-svn: 64827
* Emit debug info for bitfields.Devang Patel2009-02-171-3/+6
| | | | llvm-svn: 64815
* Add a method to ScalarEvolution for telling it when a loop has beenDan Gohman2009-02-171-0/+5
| | | | | | | | | | | modified in a way that may effect the trip count calculation. Change IndVars to use this method when it rewrites pointer or floating-point induction variables instead of using a doInitialization method to sneak these changes in before ScalarEvolution has a chance to see the loop. This eliminates the need for LoopPass to depend on ScalarEvolution. llvm-svn: 64810
* Move dumpPassStructure out of line.Dan Gohman2009-02-171-9/+2
| | | | llvm-svn: 64796
* Tidy whitespace.Dan Gohman2009-02-171-17/+16
| | | | llvm-svn: 64791
* --- Merging (from foreign repository) r64714 into '.':Bill Wendling2009-02-171-5/+2
| | | | | | | | | | | | U include/llvm/CodeGen/DebugLoc.h U lib/CodeGen/SelectionDAG/LegalizeDAG.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp Enable debug location generation at -Os. This goes with the reapplication of the r63639 patch. llvm-svn: 64715
* Strengthen the "non-constant stride must dominate loop preheader" check.Evan Cheng2009-02-172-0/+26
| | | | llvm-svn: 64703
* Add llvm::RoundUpToAlignment.Daniel Dunbar2009-02-161-0/+12
| | | | | | - No functionality change. llvm-svn: 64691
* Fix bug where APSInt::operator-- incremented instead of decremented.Ted Kremenek2009-02-161-1/+1
| | | | llvm-svn: 64687
* 80-column violation.Mikhail Glushenkov2009-02-151-1/+2
| | | | llvm-svn: 64586
* Add mode_t to the config.h generated by cmake on win32. Used by clang.Cedric Venet2009-02-141-0/+3
| | | | llvm-svn: 64555
* Unbreak the build on win32.Cedric Venet2009-02-143-4/+4
| | | | | | | | | | Cleanup some warning. Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync. Only tested with VS2008. hope it does not break anything. feel free to revert. llvm-svn: 64554
* 80-column violation.Mikhail Glushenkov2009-02-141-16/+16
| | | | llvm-svn: 64550
* The trampoline intrinsic can be marked IntrWriteArgMem,Duncan Sands2009-02-141-1/+1
| | | | | | now that this no longer implies nocapture. llvm-svn: 64540
* IntrWriteArgMem implies nocapture, but this wasn'tDuncan Sands2009-02-141-17/+16
| | | | | | | | | | | | | | taken advantage of anywhere. Change the definition of IntrWriteArgMem to no longer imply nocapture, and explicitly add nocapture attributes everywhere (well, not quite everywhere, because some of these intrinsics did capture their arguments!). Also, make clear that the lack of other side-effects does not exclude doing volatile loads or stores - the atomic intrinsics do these, yet they are all marked IntrWriteArgMem (this change is safe because nothing exploited it). llvm-svn: 64539
* Correct a comment: since AccessArguments is nowDuncan Sands2009-02-131-3/+3
| | | | | | | | | being used for atomic intrinsics, it seems the access may be volatile. No code was exploiting the original non-volatile definition, so only the comment needs changing. llvm-svn: 64464
* Remove non-DebugLoc versions of BuildMI.Dale Johannesen2009-02-131-26/+0
| | | | | | "I got blisters on my fingers." llvm-svn: 64439
* Eliminate a couple of non-DebugLoc BuildMI variants.Dale Johannesen2009-02-121-12/+0
| | | | | | Modify callers. llvm-svn: 64409
* Teach IndVarSimplify to optimize code using the C "int" type forDan Gohman2009-02-121-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | loop induction on LP64 targets. When the induction variable is used in addressing, IndVars now is usually able to inserst a 64-bit induction variable and eliminates the sign-extending cast. This is also useful for code using C "short" types for induction variables on targets with 32-bit addressing. Inserting a wider induction variable is easy; the tricky part is determining when trunc(sext(i)) expressions are no-ops. This requires range analysis of the loop trip count. A common case is when the original loop iteration starts at 0 and exits when the induction variable is signed-less-than a fixed value; this case is now handled. This replaces IndVarSimplify's OptimizeCanonicalIVType. It was doing the same optimization, but it was limited to loops with constant trip counts, because it was running after the loop rewrite, and the information about the original induction variable is lost by that point. Rename ScalarEvolution's executesAtLeastOnce to isLoopGuardedByCond, generalize it to be able to test for ICMP_NE conditions, and move it to be a public function so that IndVars can use it. llvm-svn: 64407
* Add suppport for ConstantExprs of shufflevectors whose result type is not ↵Nate Begeman2009-02-121-1/+2
| | | | | | | | equal to the type of the vectors being shuffled. llvm-svn: 64401
* Add a utility function to LoopInfo to return the exit blockDan Gohman2009-02-121-0/+10
| | | | | | | when the loop has exactly one exit, and make use of it in LoopIndexSplit. llvm-svn: 64388
* Add operator->, patch by Ben Laurie!Chris Lattner2009-02-121-0/+1
| | | | llvm-svn: 64378
* Add method 'isSingleton()' to ImmutableSet. This returns true if the set ↵Ted Kremenek2009-02-121-1/+4
| | | | | | contains exactly one element. llvm-svn: 64359
* Fill in a glaring omission in derived User classes, namelyGabor Greif2009-02-111-0/+28
| | | | | | | | add efficient versions of op_begin and op_end. Up to now always those from User have been called, which in most cases follow an indirection (OperandList) even if the exact Instruction type is known. llvm-svn: 64331
* Add FoldingSet profile method for bools. Patch by Ben Laurie!Ted Kremenek2009-02-111-0/+1
| | | | llvm-svn: 64324
* When scheduling a block in parts, keep track of the overallDan Gohman2009-02-113-25/+20
| | | | | | | | | | | instruction index across each part. Instruction indices are used to make live range queries, and live ranges can extend beyond scheduling region boundaries. Refactor the ScheduleDAGSDNodes class some more so that it doesn't have to worry about this additional information. llvm-svn: 64288
* It isn't necessary to explicitly clear the contents of std::vectorDan Gohman2009-02-111-7/+2
| | | | | | and DenseMap members in a destructor. And tidy up a comment. llvm-svn: 64265
* Factor out more code for computing register live-range informationforDan Gohman2009-02-101-0/+15
| | | | | | | | | | | scheduling, and generalize is so that preserves state across scheduling regions. This fixes incorrect live-range information around terminators and labels, which are effective region boundaries. In place of looking for terminators to anchor inter-block dependencies, introduce special entry and exit scheduling units for this purpose. llvm-svn: 64254
* Enable scalar replacement of AllocaInst whose one of the user is dbg info.Devang Patel2009-02-101-0/+6
| | | | llvm-svn: 64207
* incorporate review feedbackGabor Greif2009-02-091-3/+1
| | | | llvm-svn: 64158
* 80-column violations.Mikhail Glushenkov2009-02-092-104/+107
| | | | llvm-svn: 64147
* make sure that BranchInst::getSuccessor() does not assert in cast<>Gabor Greif2009-02-091-1/+3
| | | | | | | | | even if the underlying operand is NULL. This may happen in debugging context within opt with partial loop unrolling (see test/Transforms/LoopUnroll/partial.ll). After this fix I can resubmit the (backed out) r63459: * lib/VMCore/AsmWriter.cpp: use precise accessors. llvm-svn: 64142
* These function return 'void'. Don't have 'return' return anything.Bill Wendling2009-02-092-3/+3
| | | | llvm-svn: 64136
* Turns out AnalyzeBranch can modify the mbb being analyzed. This is a nastyEvan Cheng2009-02-091-1/+5
| | | | | | | | suprise to some callers, e.g. register coalescer. For now, add an parameter that tells AnalyzeBranch whether it's safe to modify the mbb. A better solution is out there, but I don't have time to deal with it right now. llvm-svn: 64124
* 80-column violation.Mikhail Glushenkov2009-02-081-6/+6
| | | | llvm-svn: 64102
* Add a Sleep() function.Mikhail Glushenkov2009-02-081-5/+10
| | | | llvm-svn: 64101
OpenPOWER on IntegriCloud