diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-02-20 14:29:43 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-02-20 14:29:43 +0000 |
commit | b404fae9e3c2d757b4e11215fff8d88346835900 (patch) | |
tree | 081bc4fdb85dbf1b2acc579f9752b34e440776d6 /llvm/lib/Target | |
parent | 61ba2237046395ce7a6ad993e23740c0ffacf281 (diff) | |
download | bcm5719-llvm-b404fae9e3c2d757b4e11215fff8d88346835900.tar.gz bcm5719-llvm-b404fae9e3c2d757b4e11215fff8d88346835900.zip |
[Hexagon] Fix alignment calculation of stack objects in Hexagon bit tracker
llvm-svn: 325580
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonBitTracker.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp b/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp index 0c4a727734f..849bba987c3 100644 --- a/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp +++ b/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp @@ -184,9 +184,7 @@ namespace { public: static char ID; - HexagonBitSimplify() : MachineFunctionPass(ID) { - initializeHexagonBitSimplifyPass(*PassRegistry::getPassRegistry()); - } + HexagonBitSimplify() : MachineFunctionPass(ID) {} StringRef getPassName() const override { return "Hexagon bit simplification"; @@ -257,10 +255,10 @@ namespace { char HexagonBitSimplify::ID = 0; -INITIALIZE_PASS_BEGIN(HexagonBitSimplify, "hexbit", +INITIALIZE_PASS_BEGIN(HexagonBitSimplify, "hexagon-bit-simplify", "Hexagon bit simplification", false, false) INITIALIZE_PASS_DEPENDENCY(MachineDominatorTree) -INITIALIZE_PASS_END(HexagonBitSimplify, "hexbit", +INITIALIZE_PASS_END(HexagonBitSimplify, "hexagon-bit-simplify", "Hexagon bit simplification", false, false) bool HexagonBitSimplify::visitBlock(MachineBasicBlock &B, Transformation &T, diff --git a/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp b/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp index b6e220beb0c..e13cfd3f655 100644 --- a/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp +++ b/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp @@ -325,7 +325,7 @@ bool HexagonEvaluator::evaluate(const MachineInstr &MI, int FI = op(1).getIndex(); int Off = op(2).getImm(); unsigned A = MFI.getObjectAlignment(FI) + std::abs(Off); - unsigned L = Log2_32(A); + unsigned L = countTrailingZeros(A); RegisterCell RC = RegisterCell::self(Reg[0].Reg, W0); RC.fill(0, L, BT::BitValue::Zero); return rr0(RC, Outputs); diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index 80ae474822c..5dd02a02bb7 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -121,6 +121,7 @@ SchedCustomRegistry("hexagon", "Run Hexagon's custom scheduler", namespace llvm { extern char &HexagonExpandCondsetsID; + void initializeHexagonBitSimplifyPass(PassRegistry&); void initializeHexagonConstExtendersPass(PassRegistry&); void initializeHexagonEarlyIfConversionPass(PassRegistry&); void initializeHexagonExpandCondsetsPass(PassRegistry&); @@ -185,6 +186,7 @@ extern "C" void LLVMInitializeHexagonTarget() { RegisterTargetMachine<HexagonTargetMachine> X(getTheHexagonTarget()); PassRegistry &PR = *PassRegistry::getPassRegistry(); + initializeHexagonBitSimplifyPass(PR); initializeHexagonConstExtendersPass(PR); initializeHexagonEarlyIfConversionPass(PR); initializeHexagonGenMuxPass(PR); |