Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: src/IceTargetLoweringARM32.h

Issue 1738443002: Subzero. Performance tweaks. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments -- all of them Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/IceTargetLowering.cpp ('k') | src/IceTargetLoweringARM32.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/IceTargetLoweringARM32.h
diff --git a/src/IceTargetLoweringARM32.h b/src/IceTargetLoweringARM32.h
index 83e3c589b6bb647097b2691f08344d6271d06868..8c1d088ddf4549bc509e0e0b32b41937df623aa5 100644
--- a/src/IceTargetLoweringARM32.h
+++ b/src/IceTargetLoweringARM32.h
@@ -22,10 +22,6 @@
#include "IceRegistersARM32.h"
#include "IceTargetLowering.h"
-#include "llvm/ADT/SmallBitVector.h"
-
-#include <unordered_set>
-
namespace Ice {
namespace ARM32 {
@@ -84,9 +80,9 @@ public:
Variable *getPhysicalRegister(RegNumT RegNum,
Type Ty = IceType_void) override;
IceString getRegName(RegNumT RegNum, Type Ty) const override;
- llvm::SmallBitVector getRegisterSet(RegSetMask Include,
- RegSetMask Exclude) const override;
- const llvm::SmallBitVector &
+ SmallBitVector getRegisterSet(RegSetMask Include,
+ RegSetMask Exclude) const override;
+ const SmallBitVector &
getRegistersForVariable(const Variable *Var) const override {
RegClass RC = Var->getRegClass();
switch (RC) {
@@ -97,14 +93,13 @@ public:
return TypeToRegisterSet[RC];
}
}
- const llvm::SmallBitVector &
+ const SmallBitVector &
getAllRegistersForVariable(const Variable *Var) const override {
RegClass RC = Var->getRegClass();
assert((RegARM32::RegClassARM32)RC < RegARM32::RCARM32_NUM);
return TypeToRegisterSetUnfiltered[RC];
}
- const llvm::SmallBitVector &
- getAliasesForRegister(RegNumT Reg) const override {
+ const SmallBitVector &getAliasesForRegister(RegNumT Reg) const override {
return RegisterAliases[Reg];
}
bool hasFramePointer() const override { return UsesFramePointer; }
@@ -302,7 +297,7 @@ protected:
void
makeRandomRegisterPermutation(llvm::SmallVectorImpl<RegNumT> &Permutation,
- const llvm::SmallBitVector &ExcludeRegisters,
+ const SmallBitVector &ExcludeRegisters,
uint64_t Salt) const override;
// If a divide-by-zero check is needed, inserts a: test; branch .LSKIP; trap;
@@ -898,7 +893,7 @@ protected:
// TODO(jpp): if the same global G is used in different functions, then this
// method will emit one G(gotoff) relocation per function.
IceString createGotoffRelocation(const ConstantRelocatable *CR);
- std::unordered_set<IceString> KnownGotoffs;
+ CfgUnorderedSet<IceString> KnownGotoffs;
/// @}
/// Loads the constant relocatable Name to Register. Then invoke Finish to
@@ -1116,11 +1111,10 @@ protected:
bool PrologEmitsFixedAllocas = false;
uint32_t MaxOutArgsSizeBytes = 0;
// TODO(jpp): std::array instead of array.
- static llvm::SmallBitVector TypeToRegisterSet[RegARM32::RCARM32_NUM];
- static llvm::SmallBitVector
- TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM];
- static llvm::SmallBitVector RegisterAliases[RegARM32::Reg_NUM];
- llvm::SmallBitVector RegsUsed;
+ static SmallBitVector TypeToRegisterSet[RegARM32::RCARM32_NUM];
+ static SmallBitVector TypeToRegisterSetUnfiltered[RegARM32::RCARM32_NUM];
+ static SmallBitVector RegisterAliases[RegARM32::Reg_NUM];
+ SmallBitVector RegsUsed;
VarList PhysicalRegisters[IceType_NUM];
VarList PreservedGPRs;
VarList PreservedSRegs;
@@ -1158,12 +1152,12 @@ protected:
private:
void discardUnavailableGPRsAndTheirAliases(CfgVector<RegNumT> *Regs);
- llvm::SmallBitVector GPRegsUsed;
+ SmallBitVector GPRegsUsed;
CfgVector<RegNumT> GPRArgs;
CfgVector<RegNumT> I64Args;
void discardUnavailableVFPRegs(CfgVector<RegNumT> *Regs);
- llvm::SmallBitVector VFPRegsUsed;
+ SmallBitVector VFPRegsUsed;
CfgVector<RegNumT> FP32Args;
CfgVector<RegNumT> FP64Args;
CfgVector<RegNumT> Vec128Args;
@@ -1177,9 +1171,9 @@ private:
void postambleCtpop64(const InstCall *Instr);
void preambleDivRem(const InstCall *Instr);
- std::unordered_map<Operand *, void (TargetARM32::*)(const InstCall *Instr)>
+ CfgUnorderedMap<Operand *, void (TargetARM32::*)(const InstCall *Instr)>
ARM32HelpersPreamble;
- std::unordered_map<Operand *, void (TargetARM32::*)(const InstCall *Instr)>
+ CfgUnorderedMap<Operand *, void (TargetARM32::*)(const InstCall *Instr)>
ARM32HelpersPostamble;
class ComputationTracker {
@@ -1236,7 +1230,7 @@ private:
// ComputationMap maps a Variable number to a payload identifying which
// instruction defined it.
- using ComputationMap = std::unordered_map<SizeT, ComputationEntry>;
+ using ComputationMap = CfgUnorderedMap<SizeT, ComputationEntry>;
ComputationMap KnownComputations;
};
« no previous file with comments | « src/IceTargetLowering.cpp ('k') | src/IceTargetLoweringARM32.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698