Commits

Show all
Author Commit Message Labels Comments Date
Evan Cheng
Backed out 53031.
Tags
4 tags
Evan Cheng
Back out 53091 for now.
Owen Anderson
Use information already present in the ValueTable to fast-fail when we know there won't be a value number match. This speeds up GVN on a case where there are very few redundancies by ~25%.
Devang Patel
Do not try to update dominator info while manipulating CFG. This code does not handle all cases and keeps invalid dom info around some cases, which misleads other passes down stream. Right now, dom info is recaluclated in the end if the loop is switched.
Owen Anderson
Remove the ability for ADCE to remove unreachable blocks in loop nests, because, as Eli pointed out, SimplifyCFG already does this.
Evan Cheng
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.
Tags
2 tags
Evan Cheng
isel load folding is disabled at -fast. Now hoist the check up to the top level to save some time.
matthijs
Add newline at the end of Constants.cpp.
Anton Korobeynikov
llvm-gcc sometimes marks external declarations hidden, because intializers are processed separately. Honour such situation and emit PIC relocations properly in such case.
Bill Wendling
Remove unused function.
Devang Patel
Preserve dom info.
Devang Patel
Keep track of inherited analysis (e.g. dominator tree).
Devang Patel
Remove extra FIXME
Devang Patel
Reconstruct dom info, if loop is unswitched.
Devang Patel
LoopUnswitch does not preserve dominator info in all cases.
Dan Gohman
Reapply r52988, "Simplify addRegisterKilled and addRegisterDead." The 254.gap failure was not due to this mod.
Tags
4 tags
Dan Gohman
Use operator new instead of new char[].
Dan Gohman
Use operator new instead of new char[].
Dan Gohman
Avoid unnecessarily copying APInt objects.
Dan Gohman
Correct a comment.
Evan Cheng
Use std::replace instead of std::find and push_back.
Devang Patel
Undo previous patch. It is not that simple to fix dom info here.
Evan Cheng
- Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers. - CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead.
Evan Cheng
commuteInstruction should preserve dead markers.
Owen Anderson
Make LiveVariables even more optional, by making it optional in the call to TargetInstrInfo::convertToThreeAddressInstruction Also, if LV isn't around, then TwoAddr doesn't need to be updating flags, since they won't have been set in the first place.
Dan Gohman
Replace a few uses of SelectionDAG::getTargetNode with SelectionDAG::SelectNodeTo in the instruction selector. This updates existing nodes in place instead of creating new ones. Go back to selecting ISD::DBG_LABEL nodes into TargetInstrInfo::DBG_LABEL nodes instead of leaving them unselected, now that SelectNodeTo allows us to update them in place.
Devang Patel
Preserve dom info while simplifing loop after the unswitch.
Eric Christopher
Add a couple more helper functions to deal with creating global constant strings and pointers to global constant strings.
Dan Gohman
Revert r52988. It broke 254.gap on x86-64.
Owen Anderson
TwoAddressInstructionPass doesn't really require LiveVariables, it just needs to update it if it's already around.
  1. Prev
  2. Next