mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
Get better debug output by having modified instructions print both the
original and new instruction. A slight performance hit with ostringstream but it is only for debug. Also, clean up an uninitialized variable warning noticed in a release build. llvm-svn: 35358
This commit is contained in:
parent
3fea170ecd
commit
73d778edb7
@ -57,6 +57,9 @@
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include <algorithm>
|
||||
#include <set>
|
||||
#ifndef NDEBUG
|
||||
#include <sstream>
|
||||
#endif
|
||||
using namespace llvm;
|
||||
using namespace llvm::PatternMatch;
|
||||
|
||||
@ -3134,7 +3137,7 @@ Value *InstCombiner::FoldLogicalPlusAnd(Value *LHS, Value *RHS,
|
||||
// Otherwise, if Mask is 0+1+0+, and if B is known to have the low 0+
|
||||
// part, we don't need any explicit masks to take them out of A. If that
|
||||
// is all N is, ignore it.
|
||||
unsigned MB, ME;
|
||||
unsigned MB = 0, ME = 0;
|
||||
if (isRunOfOnes(Mask, MB, ME)) { // begin/end bit of run, inclusive
|
||||
uint32_t BitWidth = cast<IntegerType>(RHS->getType())->getBitWidth();
|
||||
APInt Mask(APInt::getAllOnesValue(BitWidth));
|
||||
@ -9445,6 +9448,10 @@ bool InstCombiner::DoOneIteration(Function &F, unsigned Iteration) {
|
||||
}
|
||||
|
||||
// Now that we have an instruction, try combining it to simplify it...
|
||||
#ifndef NDEBUG
|
||||
std::string OrigI;
|
||||
#endif
|
||||
DEBUG(std::ostringstream SS; I->print(SS); OrigI = SS.str(););
|
||||
if (Instruction *Result = visit(*I)) {
|
||||
++NumCombined;
|
||||
// Should we replace the old instruction with a new one?
|
||||
@ -9483,7 +9490,8 @@ bool InstCombiner::DoOneIteration(Function &F, unsigned Iteration) {
|
||||
// Erase the old instruction.
|
||||
InstParent->getInstList().erase(I);
|
||||
} else {
|
||||
DOUT << "IC: MOD = " << *I;
|
||||
DOUT << "IC: Mod = " << OrigI
|
||||
<< " New = " << *I;
|
||||
|
||||
// If the instruction was modified, it's possible that it is now dead.
|
||||
// if so, remove it.
|
||||
|
Loading…
Reference in New Issue
Block a user