erikdesjardins created this revision. Herald added subscribers: Moerafaat, zero9178, Enna1, bzcheeseman, sdasgup3, wenzhicui, wrengr, cota, teijeong, rdzhabarov, tatianashp, wenlei, msifontes, jurahul, Kayjukh, grosul1, Joonsoo, liufengdb, aartbik, mgester, arpith-jacob, antiagainst, shauheen, rriddle, mehdi_amini, thopre, kadircet, arphaman, JDevlieghere, hiraditya. Herald added a reviewer: JDevlieghere. Herald added a project: All. erikdesjardins requested review of this revision. Herald added subscribers: cfe-commits, llvm-commits, lldb-commits, Sanitizers, stephenneuendorffer, nicolasvasilache. Herald added projects: clang, Sanitizers, LLDB, MLIR, LLVM, clang-tools-extra.
Depends on https://reviews.llvm.org/D142861. Alternative to https://reviews.llvm.org/D137601. xxHash is much faster than djbHash. This makes a simple Rust test case with a large constant string 10% faster to compile. Previous attempts at changing this hash function (e.g. https://reviews.llvm.org/D97396) had to be reverted due to breaking tests that depended on iteration order. No additional tests fail with this patch compared to `main` when running `check-all` with `-DLLVM_ENABLE_PROJECTS="all"` (on a Linux host), so I hope I found everything that needs to be changed. For posterity, the tests that fail on main are: ompd-test :: api_tests/test_ompd_finalize.c ompd-test :: api_tests/test_ompd_get_curr_parallel_handle.c Overall: Skipped : 43 Unsupported : 2862 Passed : 100507 Expectedly Failed: 296 Failed : 2 Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D142862 Files: clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp clang-tools-extra/test/modularize/ProblemsDisplayLists.modularize clang-tools-extra/test/modularize/ProblemsInconsistent.modularize clang/unittests/Basic/SarifTest.cpp compiler-rt/test/profile/Linux/instrprof-show-debug-info-correlation.c lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py llvm/lib/Support/StringMap.cpp llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll llvm/test/DebugInfo/Generic/debug-names-hash-collisions.ll llvm/test/DebugInfo/X86/debug-pubtables-dwarf64.ll llvm/test/DebugInfo/X86/gnu-public-names-gmlt.ll llvm/test/DebugInfo/X86/gnu-public-names.ll llvm/test/ObjectYAML/Offload/binary.yaml llvm/test/ObjectYAML/Offload/multiple_members.yaml llvm/test/tools/dsymutil/ARM/extern-alias.test llvm/test/tools/llvm-profdata/suppl-instr-with-sample.test mlir/test/Transforms/print-op-graph.mlir mlir/test/mlir-lsp-server/completion.test
Index: mlir/test/mlir-lsp-server/completion.test =================================================================== --- mlir/test/mlir-lsp-server/completion.test +++ mlir/test/mlir-lsp-server/completion.test @@ -84,18 +84,18 @@ // CHECK-NEXT: "isIncomplete": false, // CHECK-NEXT: "items": [ // CHECK-NEXT: { -// CHECK-NEXT: "detail": "builtin.unrealized_conversion_cast: !pdl.value", -// CHECK-NEXT: "insertText": "cast", -// CHECK-NEXT: "insertTextFormat": 1, -// CHECK-NEXT: "kind": 6, -// CHECK-NEXT: "label": "%cast" -// CHECK-NEXT: }, -// CHECK-NEXT: { // CHECK-NEXT: "detail": "arg #0: i32", // CHECK-NEXT: "insertText": "arg", // CHECK-NEXT: "insertTextFormat": 1, // CHECK-NEXT: "kind": 6, // CHECK-NEXT: "label": "%arg" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "detail": "builtin.unrealized_conversion_cast: !pdl.value", +// CHECK-NEXT: "insertText": "cast", +// CHECK-NEXT: "insertTextFormat": 1, +// CHECK-NEXT: "kind": 6, +// CHECK-NEXT: "label": "%cast" // CHECK-NEXT: } // CHECK: ] // CHECK-NEXT: } Index: mlir/test/Transforms/print-op-graph.mlir =================================================================== --- mlir/test/Transforms/print-op-graph.mlir +++ mlir/test/Transforms/print-op-graph.mlir @@ -6,49 +6,49 @@ // DFG: subgraph {{.*}} // DFG: label = "func.func{{.*}}merge_blocks // DFG: subgraph {{.*}} { -// DFG: v[[ARG0:.*]] [label = "arg0" -// DFG: v[[CONST10:.*]] [label ={{.*}}10 : i32 +// DFG: v[[ARG0:.*]] [shape = ellipse, label = "arg0" +// DFG: v[[CONST10:.*]] [shape = ellipse, label ={{.*}}10 : i32 // DFG: subgraph [[CLUSTER_MERGE_BLOCKS:.*]] { -// DFG: v[[ANCHOR:.*]] [label = " ", shape = plain] +// DFG: v[[ANCHOR:.*]] [shape = plain, label = " "] // DFG: label = "test.merge_blocks // DFG: subgraph {{.*}} { -// DFG: v[[TEST_BR:.*]] [label = "test.br +// DFG: v[[TEST_BR:.*]] [shape = ellipse, label = "test.br // DFG: } // DFG: subgraph {{.*}} { // DFG: } // DFG: } -// DFG: v[[TEST_RET:.*]] [label = "test.return +// DFG: v[[TEST_RET:.*]] [shape = ellipse, label = "test.return // DFG: v[[ARG0]] -> v[[TEST_BR]] // DFG: v[[CONST10]] -> v[[TEST_BR]] -// DFG: v[[ANCHOR]] -> v[[TEST_RET]] [{{.*}}, ltail = [[CLUSTER_MERGE_BLOCKS]]] -// DFG: v[[ANCHOR]] -> v[[TEST_RET]] [{{.*}}, ltail = [[CLUSTER_MERGE_BLOCKS]]] +// DFG: v[[ANCHOR]] -> v[[TEST_RET]] [ltail = [[CLUSTER_MERGE_BLOCKS]], {{.*}}] +// DFG: v[[ANCHOR]] -> v[[TEST_RET]] [ltail = [[CLUSTER_MERGE_BLOCKS]], {{.*}}] // CFG-LABEL: digraph G { // CFG: subgraph {{.*}} { // CFG: subgraph {{.*}} // CFG: label = "func.func{{.*}}merge_blocks // CFG: subgraph {{.*}} { -// CFG: v[[C1:.*]] [label = "arith.constant -// CFG: v[[C2:.*]] [label = "arith.constant -// CFG: v[[C3:.*]] [label = "arith.constant -// CFG: v[[C4:.*]] [label = "arith.constant -// CFG: v[[TEST_FUNC:.*]] [label = "test.func +// CFG: v[[C1:.*]] [shape = ellipse, label = "arith.constant +// CFG: v[[C2:.*]] [shape = ellipse, label = "arith.constant +// CFG: v[[C3:.*]] [shape = ellipse, label = "arith.constant +// CFG: v[[C4:.*]] [shape = ellipse, label = "arith.constant +// CFG: v[[TEST_FUNC:.*]] [shape = ellipse, label = "test.func // CFG: subgraph [[CLUSTER_MERGE_BLOCKS:.*]] { -// CFG: v[[ANCHOR:.*]] [label = " ", shape = plain] +// CFG: v[[ANCHOR:.*]] [shape = plain, label = " "] // CFG: label = "test.merge_blocks // CFG: subgraph {{.*}} { -// CFG: v[[TEST_BR:.*]] [label = "test.br +// CFG: v[[TEST_BR:.*]] [shape = ellipse, label = "test.br // CFG: } // CFG: subgraph {{.*}} { // CFG: } // CFG: } -// CFG: v[[TEST_RET:.*]] [label = "test.return +// CFG: v[[TEST_RET:.*]] [shape = ellipse, label = "test.return // CFG: v[[C1]] -> v[[C2]] // CFG: v[[C2]] -> v[[C3]] // CFG: v[[C3]] -> v[[C4]] // CFG: v[[C4]] -> v[[TEST_FUNC]] -// CFG: v[[TEST_FUNC]] -> v[[ANCHOR]] [{{.*}}, lhead = [[CLUSTER_MERGE_BLOCKS]]] -// CFG: v[[ANCHOR]] -> v[[TEST_RET]] [{{.*}}, ltail = [[CLUSTER_MERGE_BLOCKS]]] +// CFG: v[[TEST_FUNC]] -> v[[ANCHOR]] [lhead = [[CLUSTER_MERGE_BLOCKS]], {{.*}}] +// CFG: v[[ANCHOR]] -> v[[TEST_RET]] [ltail = [[CLUSTER_MERGE_BLOCKS]], {{.*}}] func.func @merge_blocks(%arg0: i32, %arg1 : i32) -> () { %0 = arith.constant dense<[[0, 1], [2, 3]]> : tensor<2x2xi32> Index: llvm/test/tools/llvm-profdata/suppl-instr-with-sample.test =================================================================== --- llvm/test/tools/llvm-profdata/suppl-instr-with-sample.test +++ llvm/test/tools/llvm-profdata/suppl-instr-with-sample.test @@ -6,15 +6,15 @@ RUN: -suppl-min-size-threshold=0 %p/Inputs/mix_instr.proftext -o %t RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX1 -MIX1: foo: -MIX1-NEXT: Hash: 0x0000000000000007 -MIX1-NEXT: Counters: 5 -MIX1-NEXT: Block counts: [12, 13, 0, 0, 0] MIX1: goo: MIX1-NEXT: Hash: 0x0000000000000005 MIX1-NEXT: Counters: 3 MIX1-NOT: Block counts: MIX1-SAME: <PseudoHot> +MIX1: foo: +MIX1-NEXT: Hash: 0x0000000000000007 +MIX1-NEXT: Counters: 5 +MIX1-NEXT: Block counts: [12, 13, 0, 0, 0] MIX1: moo: MIX1-NEXT: Hash: 0x0000000000000009 MIX1-NEXT: Counters: 4 @@ -27,16 +27,16 @@ RUN: -instr-prof-cold-threshold=30 %p/Inputs/mix_instr.proftext -o %t RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX2 -MIX2: foo: -MIX2-NEXT: Hash: 0x0000000000000007 -MIX2-NEXT: Counters: 5 -MIX2-NOT: Block counts: -MIX2-SAME: <PseudoHot> MIX2: goo: MIX2-NEXT: Hash: 0x0000000000000005 MIX2-NEXT: Counters: 3 MIX2-NOT: Block counts: MIX2-SAME: <PseudoHot> +MIX2: foo: +MIX2-NEXT: Hash: 0x0000000000000007 +MIX2-NEXT: Counters: 5 +MIX2-NOT: Block counts: +MIX2-SAME: <PseudoHot> MIX2: moo: MIX2-NEXT: Hash: 0x0000000000000009 MIX2-NEXT: Counters: 4 @@ -49,15 +49,15 @@ RUN: -instr-prof-cold-threshold=30 %p/Inputs/mix_instr.proftext -o %t RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX3 -MIX3: foo: -MIX3-NEXT: Hash: 0x0000000000000007 -MIX3-NEXT: Counters: 5 -MIX3-NEXT: Block counts: [1384, 1500, 0, 0, 0] MIX3: goo: MIX3-NEXT: Hash: 0x0000000000000005 MIX3-NEXT: Counters: 3 MIX3-NOT: Block counts: MIX3-SAME: <PseudoHot> +MIX3: foo: +MIX3-NEXT: Hash: 0x0000000000000007 +MIX3-NEXT: Counters: 5 +MIX3-NEXT: Block counts: [1384, 1500, 0, 0, 0] MIX3: moo: MIX3-NEXT: Hash: 0x0000000000000009 MIX3-NEXT: Counters: 4 @@ -71,15 +71,15 @@ RUN: -instr-prof-cold-threshold=30 %p/Inputs/mix_instr_small.proftext -o %t RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX4 -MIX4: foo: -MIX4-NEXT: Hash: 0x0000000000000007 -MIX4-NEXT: Counters: 1 -MIX4-NEXT: Block counts: [0] MIX4: goo: MIX4-NEXT: Hash: 0x0000000000000005 MIX4-NEXT: Counters: 3 MIX4-NOT: Block counts: MIX4-SAME: <PseudoHot> +MIX4: foo: +MIX4-NEXT: Hash: 0x0000000000000007 +MIX4-NEXT: Counters: 1 +MIX4-NEXT: Block counts: [0] MIX4: moo: MIX4-NEXT: Hash: 0x0000000000000009 MIX4-NEXT: Counters: 1 Index: llvm/test/tools/dsymutil/ARM/extern-alias.test =================================================================== --- llvm/test/tools/dsymutil/ARM/extern-alias.test +++ llvm/test/tools/dsymutil/ARM/extern-alias.test @@ -38,5 +38,5 @@ RUN: dsymutil -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/private_extern/private_extern.out -o %t.dSYM --verbose | FileCheck %s RUN: dsymutil -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/extern/extern.out -o %t.dSYM --verbose | FileCheck %s CHECK-NOT: could not find object file symbol for symbol _baz -CHECK: { sym: _foo, objAddr: 0x0, binAddr: 0x100007F58, size: 0x20 } CHECK: { sym: _baz, objAddr: 0x0, binAddr: 0x100007F58, size: 0x0 } +CHECK: { sym: _foo, objAddr: 0x0, binAddr: 0x100007F58, size: 0x20 } Index: llvm/test/ObjectYAML/Offload/multiple_members.yaml =================================================================== --- llvm/test/ObjectYAML/Offload/multiple_members.yaml +++ llvm/test/ObjectYAML/Offload/multiple_members.yaml @@ -26,18 +26,18 @@ # CHECK-NEXT: OffloadKind: OFK_OpenMP # CHECK-NEXT: Flags: 0 # CHECK-NEXT: String: -# CHECK-NEXT: - Key: triple -# CHECK-NEXT: Value: nvptx64-nvidia-cuda # CHECK-NEXT: - Key: arch # CHECK-NEXT: Value: sm_70 +# CHECK-NEXT: - Key: triple +# CHECK-NEXT: Value: nvptx64-nvidia-cuda # CHECK-NEXT: Content: DEADBEEF # CHECK-NEXT: - ImageKind: IMG_Bitcode # CHECK-NEXT: OffloadKind: OFK_OpenMP # CHECK-NEXT: Flags: 0 # CHECK-NEXT: String: -# CHECK-NEXT: - Key: triple -# CHECK-NEXT: Value: amdgcn-amd-amdhsa # CHECK-NEXT: - Key: arch # CHECK-NEXT: Value: gfx908 +# CHECK-NEXT: - Key: triple +# CHECK-NEXT: Value: amdgcn-amd-amdhsa # CHECK-NEXT: Content: CAFEFEED # CHECK-NEXT: ... Index: llvm/test/ObjectYAML/Offload/binary.yaml =================================================================== --- llvm/test/ObjectYAML/Offload/binary.yaml +++ llvm/test/ObjectYAML/Offload/binary.yaml @@ -17,9 +17,9 @@ # CHECK-NEXT: OffloadKind: OFK_OpenMP # CHECK-NEXT: Flags: 0 # CHECK-NEXT: String: -# CHECK-NEXT: - Key: triple -# CHECK-NEXT: Value: nvptx64-nvidia-cuda # CHECK-NEXT: - Key: arch # CHECK-NEXT: Value: sm_70 +# CHECK-NEXT: - Key: triple +# CHECK-NEXT: Value: nvptx64-nvidia-cuda # CHECK-NEXT: Content: DEADBEEF # CHECK-NEXT: ... Index: llvm/test/DebugInfo/X86/gnu-public-names.ll =================================================================== --- llvm/test/DebugInfo/X86/gnu-public-names.ll +++ llvm/test/DebugInfo/X86/gnu-public-names.ll @@ -66,6 +66,8 @@ ; ASM: .section .debug_gnu_pubnames ; ASM: .byte 32 # Attributes: VARIABLE, EXTERNAL +; ASM-NEXT: .asciz "ns::global_namespace_variable" # External Name +; ASM: .byte 32 # Attributes: VARIABLE, EXTERNAL ; ASM-NEXT: .asciz "global_variable" # External Name ; ASM: .section .debug_gnu_pubtypes @@ -123,7 +125,7 @@ ; CHECK: DW_AT_name ("global_namespace_function") ; CHECK: NULL -; CHECK: DW_TAG_subprogram +; CHECK: [[F3:0x[0-9a-f]+]]: DW_TAG_subprogram ; CHECK: DW_AT_name ("f3") ; CHECK: [[F3_Z:.*]]: DW_TAG_variable ; CHECK: DW_AT_name ("z") @@ -184,7 +186,10 @@ ; CHECK: DW_AT_linkage_name ; CHECK: DW_AT_name ("global_function") -; CHECK: DW_TAG_subprogram +; CHECK: [[GLOBAL_F7:0x[0-9a-f]+]]: DW_TAG_subprogram +; CHECK: DW_AT_linkage_name +; CHECK: DW_AT_name ("f7") + ; CHECK: DW_TAG_pointer_type ; CHECK: DW_TAG_pointer_type ; CHECK: NULL @@ -192,40 +197,42 @@ ; CHECK-LABEL: .debug_gnu_pubnames contents: ; CHECK-NEXT: length = {{.*}}, version = 0x0002, unit_offset = 0x00000000, unit_size = {{.*}} ; CHECK-NEXT: Offset Linkage Kind Name +; CHECK-NEXT: [[ANON_INNER_B]] STATIC VARIABLE "(anonymous namespace)::inner::b" +; CHECK-NEXT: [[MEM_FUNC]] EXTERNAL FUNCTION "C::member_function" +; CHECK-NEXT: [[OUTER]] EXTERNAL TYPE "outer" +; CHECK-NEXT: [[GLOB_NS_VAR]] EXTERNAL VARIABLE "ns::global_namespace_variable" +; CHECK-NEXT: [[GLOB_VAR]] EXTERNAL VARIABLE "global_variable" +; CHECK-NEXT: [[UNNAMED_ENUM_ENUMERATOR]] STATIC VARIABLE "unnamed_enum_enumerator" +; CHECK-NEXT: [[GLOBAL_F7]] EXTERNAL FUNCTION "f7" +; CHECK-NEXT: [[OUTER_ANON]] EXTERNAL TYPE "outer::(anonymous namespace)" +; FIXME: GCC produces enumerators as EXTERNAL, not STATIC +; CHECK-NEXT: [[NAMED_ENUM_CLASS_ENUMERATOR]] STATIC VARIABLE "named_enum_class_enumerator" ; CHECK-NEXT: [[GLOBAL_FUNC]] EXTERNAL FUNCTION "global_function" -; CHECK-NEXT: [[NS]] EXTERNAL TYPE "ns" -; CHECK-NEXT: [[OUTER_ANON_C]] STATIC VARIABLE "outer::(anonymous namespace)::c" -; CHECK-NEXT: [[ANON_I]] STATIC VARIABLE "(anonymous namespace)::i" ; CHECK-NEXT: [[GLOB_NS_FUNC]] EXTERNAL FUNCTION "ns::global_namespace_function" +; CHECK-NEXT: [[NS]] EXTERNAL TYPE "ns" +; CHECK-NEXT: [[NAMED_ENUM_ENUMERATOR]] STATIC VARIABLE "named_enum_enumerator" +; CHECK-NEXT: [[ANON]] EXTERNAL TYPE "(anonymous namespace)" +; CHECK-NEXT: [[OUTER_ANON_C]] STATIC VARIABLE "outer::(anonymous namespace)::c" +; CHECK-NEXT: [[D_VAR]] EXTERNAL VARIABLE "ns::d" +; CHECK-NEXT: [[STATIC_MEM_FUNC]] EXTERNAL FUNCTION "C::static_member_function" +; CHECK-NEXT: [[STATIC_MEM_VAR]] EXTERNAL VARIABLE "C::static_member_variable" +; CHECK-NEXT: [[ANON_I]] STATIC VARIABLE "(anonymous namespace)::i" +; CHECK-NEXT: [[ANON_INNER]] EXTERNAL TYPE "(anonymous namespace)::inner" +; CHECK-NEXT: [[F3]] EXTERNAL FUNCTION "f3" ; GCC Doesn't put local statics in pubnames, but it seems not unreasonable and ; comes out naturally from LLVM's implementation, so I'm OK with it for now. If ; it's demonstrated that this is a major size concern or degrades debug info ; consumer behavior, feel free to change it. ; CHECK-NEXT: [[F3_Z]] STATIC VARIABLE "f3::z" -; CHECK-NEXT: [[ANON]] EXTERNAL TYPE "(anonymous namespace)" -; CHECK-NEXT: [[OUTER_ANON]] EXTERNAL TYPE "outer::(anonymous namespace)" -; CHECK-NEXT: [[ANON_INNER_B]] STATIC VARIABLE "(anonymous namespace)::inner::b" -; CHECK-NEXT: [[OUTER]] EXTERNAL TYPE "outer" -; FIXME: GCC produces enumerators as EXTERNAL, not STATIC -; CHECK-NEXT: [[NAMED_ENUM_CLASS_ENUMERATOR]] STATIC VARIABLE "named_enum_class_enumerator" -; CHECK-NEXT: [[MEM_FUNC]] EXTERNAL FUNCTION "C::member_function" -; CHECK-NEXT: [[GLOB_VAR]] EXTERNAL VARIABLE "global_variable" -; CHECK-NEXT: [[GLOB_NS_VAR]] EXTERNAL VARIABLE "ns::global_namespace_variable" -; CHECK-NEXT: [[ANON_INNER]] EXTERNAL TYPE "(anonymous namespace)::inner" -; CHECK-NEXT: [[D_VAR]] EXTERNAL VARIABLE "ns::d" -; CHECK-NEXT: [[NAMED_ENUM_ENUMERATOR]] STATIC VARIABLE "named_enum_enumerator" -; CHECK-NEXT: [[STATIC_MEM_VAR]] EXTERNAL VARIABLE "C::static_member_variable" -; CHECK-NEXT: [[STATIC_MEM_FUNC]] EXTERNAL FUNCTION "C::static_member_function" -; CHECK-NEXT: [[UNNAMED_ENUM_ENUMERATOR]] STATIC VARIABLE "unnamed_enum_enumerator" ; CHECK-LABEL: debug_gnu_pubtypes contents: ; CHECK: Offset Linkage Kind Name +; CHECK-NEXT: [[INT]] STATIC TYPE "int" ; CHECK-NEXT: [[C]] EXTERNAL TYPE "C" ; CHECK-NEXT: [[UNSIGNED_INT]] STATIC TYPE "unsigned int" -; CHECK-NEXT: [[D]] EXTERNAL TYPE "ns::D" ; CHECK-NEXT: [[NAMED_ENUM]] EXTERNAL TYPE "named_enum" -; CHECK-NEXT: [[INT]] STATIC TYPE "int" ; CHECK-NEXT: [[NAMED_ENUM_CLASS]] EXTERNAL TYPE "named_enum_class" +; CHECK-NEXT: [[D]] EXTERNAL TYPE "ns::D" %struct.C = type { i8 } %"struct.ns::D" = type { i32 } Index: llvm/test/DebugInfo/X86/gnu-public-names-gmlt.ll =================================================================== --- llvm/test/DebugInfo/X86/gnu-public-names-gmlt.ll +++ llvm/test/DebugInfo/X86/gnu-public-names-gmlt.ll @@ -17,8 +17,8 @@ ; GPUB: .debug_gnu_pubnames contents: ; GPUB-NEXT: unit_offset = 0x00000000 ; GPUB-NEXT: Name -; GPUB-NEXT: "f2" ; GPUB-NEXT: "f3" +; GPUB-NEXT: "f2" ; GPUB: .debug_gnu_pubtypes contents: ; GPUB-NEXT: length = 0x0000000e, format = DWARF32, version = 0x0002, unit_offset = 0x00000000 Index: llvm/test/DebugInfo/X86/debug-pubtables-dwarf64.ll =================================================================== --- llvm/test/DebugInfo/X86/debug-pubtables-dwarf64.ll +++ llvm/test/DebugInfo/X86/debug-pubtables-dwarf64.ll @@ -19,8 +19,8 @@ ; CHECK: .debug_pubtypes contents: ; CHECK-NEXT: length = 0x0000000000000032, format = DWARF64, version = 0x0002, unit_offset = ; CHECK-NEXT: Offset Name -; CHECK-NEXT: 0x00000000[[STRUCT]] "Foo" ; CHECK-NEXT: 0x00000000[[BASET]] "int" +; CHECK-NEXT: 0x00000000[[STRUCT]] "Foo" ; IR generated and reduced from: ; $ cat foo.c Index: llvm/test/DebugInfo/Generic/debug-names-hash-collisions.ll =================================================================== --- llvm/test/DebugInfo/Generic/debug-names-hash-collisions.ll +++ llvm/test/DebugInfo/Generic/debug-names-hash-collisions.ll @@ -29,21 +29,21 @@ ; Check that all the names are present in the output ; CHECK: Bucket 0 ; CHECK: Hash: 0xF8CF70D -; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZN4lldb7SBBlockaSERKS0_" -; CHECK: Hash: 0xF8CF70D ; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZN4lldb7SBBlockC1ERKS0_" -; CHECK: Hash: 0x135A482C -; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZN4lldb7SBErroraSERKS0_" +; CHECK: Hash: 0xF8CF70D +; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZN4lldb7SBBlockaSERKS0_" ; CHECK: Hash: 0x135A482C ; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZN4lldb7SBErrorC1ERKS0_" +; CHECK: Hash: 0x135A482C +; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZN4lldb7SBErroraSERKS0_" ; CHECK-NOT: String: ; CHECK: Bucket 1 ; CHECK-NEXT: EMPTY ; CHECK: Bucket 2 ; CHECK: Hash: 0x2841B989 -; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZL11numCommutes" -; CHECK: Hash: 0x2841B989 ; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZL11NumCommutes" +; CHECK: Hash: 0x2841B989 +; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZL11numCommutes" ; CHECK: Hash: 0x3E190F5F ; CHECK-NEXT:String: 0x{{[0-9a-f]*}} "_ZL9NumRemats" ; CHECK: Hash: 0x3E190F5F Index: llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll =================================================================== --- llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll +++ llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll @@ -28,12 +28,12 @@ ; Check that all the names are present in the output ; CHECK: Hash 0x597841 -; CHECK: String: 0x{{[0-9a-f]*}} "is" ; CHECK: String: 0x{{[0-9a-f]*}} "k1" +; CHECK: String: 0x{{[0-9a-f]*}} "is" ; CHECK: Hash 0xa4b42a1e -; CHECK: String: 0x{{[0-9a-f]*}} "_ZN5clang23DataRecursiveASTVisitorIN12_GLOBAL__N_124UnusedBackingIvarCheckerEE26TraverseCUDAKernelCallExprEPNS_18CUDAKernelCallExprE" ; CHECK: String: 0x{{[0-9a-f]*}} "_ZN4llvm16DenseMapIteratorIPNS_10MDLocationENS_6detail13DenseSetEmptyENS_10MDNodeInfoIS1_EENS3_12DenseSetPairIS2_EELb0EE23AdvancePastEmptyBucketsEv" +; CHECK: String: 0x{{[0-9a-f]*}} "_ZN5clang23DataRecursiveASTVisitorIN12_GLOBAL__N_124UnusedBackingIvarCheckerEE26TraverseCUDAKernelCallExprEPNS_18CUDAKernelCallExprE" ; CHECK: Hash 0xeee7c0b2 ; CHECK: String: 0x{{[0-9a-f]*}} "_ZNK4llvm12LivePhysRegs5printERNS_11raw_ostreamE" Index: llvm/lib/Support/StringMap.cpp =================================================================== --- llvm/lib/Support/StringMap.cpp +++ llvm/lib/Support/StringMap.cpp @@ -11,8 +11,8 @@ //===----------------------------------------------------------------------===// #include "llvm/ADT/StringMap.h" -#include "llvm/Support/DJB.h" #include "llvm/Support/MathExtras.h" +#include "llvm/Support/xxhash.h" using namespace llvm; @@ -84,7 +84,7 @@ // Hash table unallocated so far? if (NumBuckets == 0) init(16); - unsigned FullHashValue = djbHash(Name, 0); + unsigned FullHashValue = xxHash64(Name); unsigned BucketNo = FullHashValue & (NumBuckets - 1); unsigned *HashTable = getHashTable(TheTable, NumBuckets); @@ -139,7 +139,7 @@ int StringMapImpl::FindKey(StringRef Key) const { if (NumBuckets == 0) return -1; // Really empty table? - unsigned FullHashValue = djbHash(Key, 0); + unsigned FullHashValue = xxHash64(Key); unsigned BucketNo = FullHashValue & (NumBuckets - 1); unsigned *HashTable = getHashTable(TheTable, NumBuckets); Index: lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py =================================================================== --- lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py +++ lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py @@ -338,11 +338,11 @@ lldb.SBError()) # error self.assertPacketLogContains([ - "QEnvironment:PLAIN=foo", - "QEnvironmentHexEncoded:4e45454453454e433d66726f6224", - "QEnvironmentHexEncoded:4e45454453454e43323d66722a6f62", "QEnvironmentHexEncoded:4e45454453454e43333d66726f7d62", "QEnvironmentHexEncoded:4e45454453454e43343d6623726f62", + "QEnvironment:PLAIN=foo", + "QEnvironmentHexEncoded:4e45454453454e43323d66722a6f62", + "QEnvironmentHexEncoded:4e45454453454e433d66726f6224", "QEnvironment:EQUALS=foo=bar", ]) @@ -386,11 +386,11 @@ lldb.SBError()) # error self.assertPacketLogContains([ - "QEnvironmentHexEncoded:504c41494e3d666f6f", - "QEnvironmentHexEncoded:4e45454453454e433d66726f6224", - "QEnvironmentHexEncoded:4e45454453454e43323d66722a6f62", "QEnvironmentHexEncoded:4e45454453454e43333d66726f7d62", "QEnvironmentHexEncoded:4e45454453454e43343d6623726f62", + "QEnvironmentHexEncoded:504c41494e3d666f6f", + "QEnvironmentHexEncoded:4e45454453454e43323d66722a6f62", + "QEnvironmentHexEncoded:4e45454453454e433d66726f6224", "QEnvironmentHexEncoded:455155414c533d666f6f3d626172", ]) Index: compiler-rt/test/profile/Linux/instrprof-show-debug-info-correlation.c =================================================================== --- compiler-rt/test/profile/Linux/instrprof-show-debug-info-correlation.c +++ compiler-rt/test/profile/Linux/instrprof-show-debug-info-correlation.c @@ -6,7 +6,6 @@ // RUN: not llvm-profdata show --debug-info=%t.no.dbg 2>&1 | FileCheck %s --check-prefix NO-DBG // NO-DBG: unable to correlate profile: could not find any profile metadata in debug info -// CHECK: a // YAML: Probes: // YAML: - Function Name: a // YAML: Linkage Name: a @@ -17,7 +16,6 @@ // YAML: Line: [[@LINE+1]] void a() {} -// CHECK: b // YAML: - Function Name: b // YAML: Linkage Name: b // YAML: CFG Hash: 0x[[#%.1X,HASH:]] @@ -27,7 +25,6 @@ // YAML: Line: [[@LINE+1]] void b() {} -// CHECK: main // YAML: - Function Name: main // YAML: Linkage Name: main // YAML: CFG Hash: 0x[[#%.1X,HASH:]] @@ -37,5 +34,8 @@ // YAML: Line: [[@LINE+1]] int main() { return 0; } +// CHECK: main +// CHECK: a +// CHECK: b // CHECK: Counters section size: 0x18 bytes // CHECK: Found 3 functions Index: clang/unittests/Basic/SarifTest.cpp =================================================================== --- clang/unittests/Basic/SarifTest.cpp +++ clang/unittests/Basic/SarifTest.cpp @@ -332,7 +332,7 @@ TEST_F(SarifDocumentWriterTest, checkSerializingCodeflows) { // GIVEN: const std::string ExpectedOutput = - R"({"$schema":"https://docs.oasis-open.org/sarif/sarif/v2.1.0/cos02/schemas/sarif-schema-2.1.0.json","runs":[{"artifacts":[{"length":27,"location":{"index":1,"uri":"file:///test-header-1.h"},"mimeType":"text/plain","roles":["resultFile"]},{"length":30,"location":{"index":2,"uri":"file:///test-header-2.h"},"mimeType":"text/plain","roles":["resultFile"]},{"length":28,"location":{"index":3,"uri":"file:///test-header-3.h"},"mimeType":"text/plain","roles":["resultFile"]},{"length":41,"location":{"index":0,"uri":"file:///main.cpp"},"mimeType":"text/plain","roles":["resultFile"]}],"columnKind":"unicodeCodePoints","results":[{"codeFlows":[{"threadFlows":[{"locations":[{"importance":"essential","location":{"message":{"text":"Message #1"},"physicalLocation":{"artifactLocation":{"index":1,"uri":"file:///test-header-1.h"},"region":{"endColumn":8,"endLine":2,"startColumn":1,"startLine":1}}}},{"importance":"important","location":{"message":{"text":"Message #2"},"physicalLocation":{"artifactLocation":{"index":2,"uri":"file:///test-header-2.h"},"region":{"endColumn":8,"endLine":2,"startColumn":1,"startLine":1}}}},{"importance":"unimportant","location":{"message":{"text":"Message #3"},"physicalLocation":{"artifactLocation":{"index":3,"uri":"file:///test-header-3.h"},"region":{"endColumn":8,"endLine":2,"startColumn":1,"startLine":1}}}}]}]}],"level":"warning","locations":[{"physicalLocation":{"artifactLocation":{"index":0,"uri":"file:///main.cpp"},"region":{"endColumn":8,"endLine":2,"startColumn":5,"startLine":2}}}],"message":{"text":"Redefinition of 'foo'"},"ruleId":"clang.unittest","ruleIndex":0}],"tool":{"driver":{"fullName":"sarif test runner","informationUri":"https://clang.llvm.org/docs/UsersManual.html","language":"en-US","name":"sarif test","rules":[{"defaultConfiguration":{"enabled":true,"level":"warning","rank":-1},"fullDescription":{"text":"Example rule created during unit tests"},"id":"clang.unittest","name":"clang unit test"}],"version":"1.0.0"}}}],"version":"2.1.0"})"; + R"({"$schema":"https://docs.oasis-open.org/sarif/sarif/v2.1.0/cos02/schemas/sarif-schema-2.1.0.json","runs":[{"artifacts":[{"length":28,"location":{"index":3,"uri":"file:///test-header-3.h"},"mimeType":"text/plain","roles":["resultFile"]},{"length":41,"location":{"index":0,"uri":"file:///main.cpp"},"mimeType":"text/plain","roles":["resultFile"]},{"length":30,"location":{"index":2,"uri":"file:///test-header-2.h"},"mimeType":"text/plain","roles":["resultFile"]},{"length":27,"location":{"index":1,"uri":"file:///test-header-1.h"},"mimeType":"text/plain","roles":["resultFile"]}],"columnKind":"unicodeCodePoints","results":[{"codeFlows":[{"threadFlows":[{"locations":[{"importance":"essential","location":{"message":{"text":"Message #1"},"physicalLocation":{"artifactLocation":{"index":1,"uri":"file:///test-header-1.h"},"region":{"endColumn":8,"endLine":2,"startColumn":1,"startLine":1}}}},{"importance":"important","location":{"message":{"text":"Message #2"},"physicalLocation":{"artifactLocation":{"index":2,"uri":"file:///test-header-2.h"},"region":{"endColumn":8,"endLine":2,"startColumn":1,"startLine":1}}}},{"importance":"unimportant","location":{"message":{"text":"Message #3"},"physicalLocation":{"artifactLocation":{"index":3,"uri":"file:///test-header-3.h"},"region":{"endColumn":8,"endLine":2,"startColumn":1,"startLine":1}}}}]}]}],"level":"warning","locations":[{"physicalLocation":{"artifactLocation":{"index":0,"uri":"file:///main.cpp"},"region":{"endColumn":8,"endLine":2,"startColumn":5,"startLine":2}}}],"message":{"text":"Redefinition of 'foo'"},"ruleId":"clang.unittest","ruleIndex":0}],"tool":{"driver":{"fullName":"sarif test runner","informationUri":"https://clang.llvm.org/docs/UsersManual.html","language":"en-US","name":"sarif test","rules":[{"defaultConfiguration":{"enabled":true,"level":"warning","rank":-1},"fullDescription":{"text":"Example rule created during unit tests"},"id":"clang.unittest","name":"clang unit test"}],"version":"1.0.0"}}}],"version":"2.1.0"})"; const char *SourceText = "int foo = 0;\n" "int foo = 1;\n" Index: clang-tools-extra/test/modularize/ProblemsInconsistent.modularize =================================================================== --- clang-tools-extra/test/modularize/ProblemsInconsistent.modularize +++ clang-tools-extra/test/modularize/ProblemsInconsistent.modularize @@ -3,12 +3,12 @@ Inputs/InconsistentHeader1.h Inputs/InconsistentHeader2.h -# CHECK: error: macro 'SYMBOL' defined at multiple locations: -# CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:3:9 -# CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:7:9 -# CHECK-NEXT: error: macro 'FUNC_STYLE' defined at multiple locations: +# CHECK: error: macro 'FUNC_STYLE' defined at multiple locations: # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:4:9 # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:8:9 +# CHECK-NEXT: error: macro 'SYMBOL' defined at multiple locations: +# CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:3:9 +# CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:7:9 # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:15:11: # CHECK-NEXT: int var = FUNC_STYLE(1, 0); # CHECK-NEXT: ^ Index: clang-tools-extra/test/modularize/ProblemsDisplayLists.modularize =================================================================== --- clang-tools-extra/test/modularize/ProblemsDisplayLists.modularize +++ clang-tools-extra/test/modularize/ProblemsDisplayLists.modularize @@ -12,5 +12,5 @@ # CHECK: These are the combined files, with problem files preceded by #: -# CHECK: {{.*}}Inputs/CompileError/HasError.h # CHECK: Inputs/CompileError/Level1A.h +# CHECK: {{.*}}Inputs/CompileError/HasError.h Index: clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp +++ clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp @@ -580,8 +580,8 @@ CDB.setCompileCommand(testPath("build/../A.cc"), Cmd); ASSERT_TRUE(Idx.blockUntilIdleForTest()); - EXPECT_THAT(Storage.keys(), ElementsAre(testPath("A.cc"), testPath("A.h"), - testPath("B.h"), testPath("C.h"))); + EXPECT_THAT(Storage.keys(), ElementsAre(testPath("C.h"), testPath("B.h"), + testPath("A.h"), testPath("A.cc"))); { auto Shard = MSS.loadShard(testPath("A.cc")); @@ -635,7 +635,7 @@ CDB.setCompileCommand(testPath("build/../A.cc"), Cmd); ASSERT_TRUE(Idx.blockUntilIdleForTest()); - EXPECT_THAT(Storage.keys(), ElementsAre(testPath("A.cc"), testPath("A.h"))); + EXPECT_THAT(Storage.keys(), ElementsAre(testPath("A.h"), testPath("A.cc"))); // Make sure we only store the Cmd for main file. EXPECT_FALSE(MSS.loadShard(testPath("A.h"))->Cmd);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits