Commits

Show all
Author Commit Message Labels Comments Date
Nick Lewycky
Don't mark all args to strtod and friends as nocapture.
Tags
2 tags
Bill Wendling
Move debug loc info along when the spiller creates new instructions.
Evan Cheng
Apparently some MachineBasicBlock's don't have corresponding llvm basic blocks.
Evan Cheng
Remove a bogus assertion. It's possible a live-in available value is used by a previous instruction.
Nate Begeman
the two non-mask arguments to a shufflevector must be the same width, but they do not have to be the same width as the result value.
Dale Johannesen
Edit description of floating point constants to reflect reality. Acknowledgements to John Clements for prodding me into this.
Gabor Greif
Fill in a glaring omission in derived User classes, namely 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.
Bill Wendling
Propagate DebugLoc info for spiller call-backs.
Dan Gohman
Fix a comment.
Dan Gohman
Don't use special heuristics for nodes with no data predecessors unless they actually have data successors, and likewise for nodes with no data successors unless they actually have data precessors.
Ted Kremenek
Add FoldingSet profile method for bools. Patch by Ben Laurie!
Daniel Dunbar
Update to match space changes in .ll
Dan Gohman
Delete the heuristic for non-livein CopyFromReg nodes. Non-liveinness is determined by whether the node has a Flag operand. However, if the node does have a Flag operand, it will be glued to its register's def, so the heuristic would end up spuriously applying to whatever node is the def.
Dan Gohman
Don't try to set an EFLAGS operand to dead if no instruction was created. This fixes a bug introduced by r61215.
Dale Johannesen
Make a transformation added in 63266 a bit less aggressive. It was transforming (x&y)==y to (x&y)!=0 in the case where y is variable and known to have at most one bit set (e.g. z&1). This is not correct; the expressions are not equivalent when y==0. I believe this patch salvages what can be salvaged, including all the cases in bt.ll. Dan, please review. Fixes gcc.c-torture/execute/20040709-[12].c
Bill Wendling
Revert r64300 and r64301. These were causing the following errors respectively: During llvm-gcc bootstrap: Undefined symbols: "llvm::FPPassManager::doFinalization(llvm::Module&)", referenced from: (anonymous namespace)::CGPassManager::doFinalization(llvm::CallGraph&, llvm::Module&) in libLLVMipa.a(CallGraphSCCPass.o) "llvm::FPPassManager::doInitialization(llvm::Module&)", referenced from: (anonymous namespace)::CGPassManager::doInitialization(llvm::Ca…
Duncan Sands
Revert r64299: it breaks the build when configured without --enable-pic, like my nightly tester.
Duncan Sands
These uses of "inline" can cause strange link-time failures when building with optimization. Just get rid of them.
Duncan Sands
Make sure the SCC pass manager initializes any contained function pass managers. Without this, simplify-libcalls would add nocapture attributes when run on its own, but not when run as part of -std-compile-opts or similar.
Nick Lewycky
Try this. Darwin -> LTO, PIC -> LTO + possibly gold too.
Evan Cheng
Implement PR3495: local spiller optimization. The local spiller can now keep availability information over BB boundaries. It visits BB's in depth first order. After visiting a BB if it find a successor which has a single predecessor it visits the successor next without clearing the availability information. This allows the successor to omit reloads or change them into copies.
Dan Gohman
When scheduling a block in parts, keep track of the overall 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.
Tags
2 tags
Devang Patel
62987 disables LTO build on darwin. Revert 62987 for now. Nicolas please investigate.
Devang Patel
If llvm.dbg.region.end is disappearing then remove corresponding llvm.dbg.func.start also.
Dan Gohman
Don't print extra spaces in vector and array constants. This makes them visually more consistent with vector and array types.
Dan Gohman
It isn't necessary to explicitly clear the contents of std::vector and DenseMap members in a destructor. And tidy up a comment.
Bill Wendling
Don't try to strip a file we just moved.
Dan Gohman
Use iterators to iterate through the Preds array instead of an index. This code is on the hot-path because the current way SDep edges are uniqued has quadratic complexity.
Dan Gohman
Consider any instruction that modifies the stack pointer to be a scheduling region boundary. This isn't necessary for correctness; it helps with compile time, as it avoids the need for data- and anti-dependencies from all spills and reloads on the stack-pointer modification.
Dan Gohman
Factor out more code for computing register live-range informationfor 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.
  1. Prev
  2. Next