[Hexagon] Create global std::map lazily.
This could of course be a simple binary search with no global state involved at all if someone cares enough. Just don't make everyone linking the hexagon backend pay for it on process startup and shutdown. llvm-svn: 274437
This commit is contained in:
parent
f040d8c061
commit
4d9d2cc77f
|
@ -80,9 +80,6 @@ static const std::pair<unsigned, unsigned> opcodeData[] = {
|
|||
std::make_pair((unsigned)V4_SS2_storewi0, 4096),
|
||||
std::make_pair((unsigned)V4_SS2_storewi1, 4352)};
|
||||
|
||||
static std::map<unsigned, unsigned>
|
||||
subinstOpcodeMap(std::begin(opcodeData), std::end(opcodeData));
|
||||
|
||||
bool HexagonMCInstrInfo::isDuplexPairMatch(unsigned Ga, unsigned Gb) {
|
||||
switch (Ga) {
|
||||
case HexagonII::HSIG_None:
|
||||
|
@ -587,6 +584,9 @@ bool HexagonMCInstrInfo::isOrderedDuplexPair(MCInstrInfo const &MCII,
|
|||
unsigned MIaG = HexagonMCInstrInfo::getDuplexCandidateGroup(MIa),
|
||||
MIbG = HexagonMCInstrInfo::getDuplexCandidateGroup(MIb);
|
||||
|
||||
static std::map<unsigned, unsigned> subinstOpcodeMap(std::begin(opcodeData),
|
||||
std::end(opcodeData));
|
||||
|
||||
// If a duplex contains 2 insns in the same group, the insns must be
|
||||
// ordered such that the numerically smaller opcode is in slot 1.
|
||||
if ((MIaG != HexagonII::HSIG_None) && (MIaG == MIbG) && bisReversable) {
|
||||
|
|
Loading…
Reference in New Issue