Index: llvm/trunk/include/llvm/MC/ConstantPools.h =================================================================== --- llvm/trunk/include/llvm/MC/ConstantPools.h +++ llvm/trunk/include/llvm/MC/ConstantPools.h @@ -19,6 +19,7 @@ #include "llvm/ADT/SmallVector.h" #include "llvm/Support/SMLoc.h" #include +#include namespace llvm { @@ -44,7 +45,7 @@ class ConstantPool { using EntryVecTy = SmallVector; EntryVecTy Entries; - DenseMap CachedEntries; + std::map CachedEntries; public: // Initialize a new empty constant pool Index: llvm/trunk/test/MC/AArch64/ldr-pseudo.s =================================================================== --- llvm/trunk/test/MC/AArch64/ldr-pseudo.s +++ llvm/trunk/test/MC/AArch64/ldr-pseudo.s @@ -205,6 +205,13 @@ ldr x1, =0x320064 // CHECK: ldr x1, .Ltmp[[TMP26:[0-9]+]] +// We previously used a DenseMap with constant values as keys, check that +// sentinel values can be used. + ldr x0, =0x7ffffffffffffffe +// CHECK: ldr x0, .Ltmp[[TMP27:[0-9]+]] + ldr x1, =0x7fffffffffffffff +// CHECK: ldr x1, .Ltmp[[TMP28:[0-9]+]] + // // Constant Pools // @@ -311,3 +318,8 @@ // CHECK: .p2align 2 // CHECK: .Ltmp[[TMP25]] // CHECK: .word 3276900 + +// CHECK: .Ltmp[[TMP27]] +// CHECK: .xword 9223372036854775806 +// CHECK: .Ltmp[[TMP28]] +// CHECK: .xword 9223372036854775807