[TableGen][AMDGPU] R600 DFA packetizer is not deterministic
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
While enabling the [AMDGPU target](https://codeberg.org/stagex/stagex/pulls/1739) in LLVM container in [StageX](https://stagex.tools/) - a Linux distribution/toolchain focused on bootstrapable and deterministic builds - we noticed that it produced different hashes across different machines.
While analyzing the difference between the resulting binaries with diffoscope, we noticed the following differences, pointing out non-determinism of R600 objects:
```
│ ├── usr/lib/libLLVMAMDGPUCodeGen.a
│ │ ├── file list
│ │ │ @@ -95,15 +95,15 @@
│ │ │ -rw-r--r-- 0 0 0 13520 1970-01-01 00:00:00.000000 GCNVOPDUtils.cpp.o
│ │ │ -rw-r--r-- 0 0 0 18048 1970-01-01 00:00:00.000000 R600AsmPrinter.cpp.o
│ │ │ -rw-r--r-- 0 0 0 11472 1970-01-01 00:00:00.000000 R600ClauseMergePass.cpp.o
│ │ │ -rw-r--r-- 0 0 0 47864 1970-01-01 00:00:00.000000 R600ControlFlowFinalizer.cpp.o
│ │ │ -rw-r--r-- 0 0 0 20008 1970-01-01 00:00:00.000000 R600EmitClauseMarkers.cpp.o
│ │ │ -rw-r--r-- 0 0 0 14952 1970-01-01 00:00:00.000000 R600ExpandSpecialInstrs.cpp.o
│ │ │ -rw-r--r-- 0 0 0 19136 1970-01-01 00:00:00.000000 R600FrameLowering.cpp.o
│ │ │ --rw-r--r-- 0 0 0 191944 1970-01-01 00:00:00.000000 R600InstrInfo.cpp.o
│ │ │ +-rw-r--r-- 0 0 0 182488 1970-01-01 00:00:00.000000 R600InstrInfo.cpp.o
│ │ │ -rw-r--r-- 0 0 0 54712 1970-01-01 00:00:00.000000 R600ISelDAGToDAG.cpp.o
│ │ │ -rw-r--r-- 0 0 0 245760 1970-01-01 00:00:00.000000 R600ISelLowering.cpp.o
│ │ │ -rw-r--r-- 0 0 0 4760 1970-01-01 00:00:00.000000 R600MachineFunctionInfo.cpp.o
│ │ │ -rw-r--r-- 0 0 0 27080 1970-01-01 00:00:00.000000 R600MachineScheduler.cpp.o
│ │ │ -rw-r--r-- 0 0 0 3808 1970-01-01 00:00:00.000000 R600MCInstLower.cpp.o
│ │ │ -rw-r--r-- 0 0 0 32288 1970-01-01 00:00:00.000000 R600OpenCLImageTypeLoweringPass.cpp.o
│ │ │ -rw-r--r-- 0 0 0 40880 1970-01-01 00:00:00.000000 R600OptimizeVectorRegisters.cpp.o
```
```
│ │ ├── R600InstrInfo.cpp.o
│ │ │ ├── readelf --wide --file-header {}
│ │ │ │ @@ -6,15 +6,15 @@
│ │ │ │ OS/ABI: UNIX - System V
│ │ │ │ ABI Version: 0
│ │ │ │ Type: REL (Relocatable file)
│ │ │ │ Machine: Advanced Micro Devices X86-64
│ │ │ │ Version: 0x1
│ │ │ │ Entry point address: 0x0
│ │ │ │ Start of program headers: 0 (bytes into file)
│ │ │ │ - Start of section headers: 153032 (bytes into file)
│ │ │ │ + Start of section headers: 143576 (bytes into file)
│ │ │ │ Flags: 0x0
│ │ │ │ Size of this header: 64 (bytes)
│ │ │ │ Size of program headers: 0 (bytes)
│ │ │ │ Number of program headers: 0
│ │ │ │ Size of section headers: 64 (bytes)
│ │ │ │ Number of section headers: 608
│ │ │ │ Section header string table index: 1
│ │ │ ├── readelf --wide --sections {}
│ │ │ │ @@ -1,617 +1,617 @@
│ │ │ │ -There are 608 section headers, starting at offset 0x255c8:
│ │ │ │ +There are 608 section headers, starting at offset 0x230d8:
│ │ │ │
│ │ │ │ Section Headers:
│ │ │ │ [Nr] Name Type Address Off Size ES Flg Lk Inf Al
│ │ │ │ [ 0] NULL 0000000000000000 000000 000000 00 0 0 0
│ │ │ │ - [ 1] .strtab STRTAB 0000000000000000 01c599 00902e 00 0 0 1
│ │ │ │ + [ 1] .strtab STRTAB 0000000000000000 01a0a9 00902e 00 0 0 1
│ │ │ │ [ 2] .text PROGBITS 0000000000000000 000040 000000 00 AX 0 0 4
│ │ │ │ [ 3] .text._ZNK4llvm20R600GenSubtargetInfo19createDFAPacketizerEPKNS_18InstrItineraryDataE PROGBITS 0000000000000000 000040 000263 00 AX 0 0 16
│ │ │ │ - [ 4] .rela.text._ZNK4llvm20R600GenSubtargetInfo19createDFAPacketizerEPKNS_18InstrItineraryDataE RELA 0000000000000000 014b18 000288 18 I 607 3 8
│ │ │ │ + [ 4] .rela.text._ZNK4llvm20R600GenSubtargetInfo19createDFAPacketizerEPKNS_18InstrItineraryDataE RELA 0000000000000000 012628 000288 18 I 607 3 8
│ │ │ │ [ 5] .text._ZN4llvm9AutomatonImEC2IN12_GLOBAL__N_114R600TransitionEEENS_8ArrayRefIT_EENS5_INS_12NfaStatePairEEE PROGBITS 0000000000000000 0002b0 0001e4 00 AX 0 0 16
│ │ │ │ - [ 6] .rela.text._ZN4llvm9AutomatonImEC2IN12_GLOBAL__N_114R600TransitionEEENS_8ArrayRefIT_EENS5_INS_12NfaStatePairEEE RELA 0000000000000000 014da0 0001e0 18 I 607 5 8
│ │ │ │ - [ 7] .group GROUP 0000000000000000 0101e0 00000c 04 607 329 4
│ │ │ │ + [ 6] .rela.text._ZN4llvm9AutomatonImEC2IN12_GLOBAL__N_114R600TransitionEEENS_8ArrayRefIT_EENS5_INS_12NfaStatePairEEE RELA 0000000000000000 0128b0 0001e0 18 I 607 5 8
│ │ │ │ + [ 7] .group GROUP 0000000000000000 00dcf0 00000c 04 607 329 4
│ │ │ │ [ 8] .text._ZN4llvm9AutomatonImED2Ev PROGBITS 0000000000000000 0004a0 00007c 00 AXG 0 0 16
│ │ │ │ - [ 9] .rela.text._ZN4llvm9AutomatonImED2Ev RELA 0000000000000000 014f80 000030 18 G 607 8 8
│ │ │ │ - [10] .group GROUP 0000000000000000 0101ec 00000c 04 607 326 4
│ │ │ │ + [ 9] .rela.text._ZN4llvm9AutomatonImED2Ev RELA 0000000000000000 012a90 000030 18 G 607 8 8
│ │ │ │ + [10] .group GROUP 0000000000000000 00dcfc 00000c 04 607 326 4
│ │ │ │ [11] .text._ZN4llvm9AutomatonImEC2ERKS1_ PROGBITS 0000000000000000 000520 000124 00 AXG 0 0 16
│ │ │ │ - [12] .rela.text._ZN4llvm9AutomatonImEC2ERKS1_ RELA 0000000000000000 014fb0 000060 18 G 607 11 8
│ │ │ │ + [12] .rela.text._ZN4llvm9AutomatonImEC2ERKS1_ RELA 0000000000000000 012ac0 000060 18 G 607 11 8
│ │ │ │ [13] .text._ZN4llvm16R600GenInstrInfoC2ERKNS_19TargetSubtargetInfoERKNS_18TargetRegisterInfoEjjjj PROGBITS 0000000000000000 000650 000067 00 AX 0 0 16
│ │ │ │ - [14] .rela.text._ZN4llvm16R600GenInstrInfoC2ERKNS_19TargetSubtargetInfoERKNS_18TargetRegisterInfoEjjjj RELA 0000000000000000 015010 000060 18 I 607 13 8
│ │ │ │ + [14] .rela.text._ZN4llvm16R600GenInstrInfoC2ERKNS_19TargetSubtargetInfoERKNS_18TargetRegisterInfoEjjjj RELA 0000000000000000 012b20 000060 18 I 607 13 8
│ │ │ │ [15] .text._ZN4llvm4R60018getNamedOperandIdxEtNS0_6OpNameE PROGBITS 0000000000000000 0006c0 000022 00 AX 0 0 16
│ │ │ │ - [16] .rela.text._ZN4llvm4R60018getNamedOperandIdxEtNS0_6OpNameE RELA 0000000000000000 015070 000030 18 I 607 15 8
│ │ │ │ + [16] .rela.text._ZN4llvm4R60018getNamedOperandIdxEtNS0_6OpNameE RELA 0000000000000000 012b80 000030 18 I 607 15 8
│ │ │ │ [17] .text._ZN4llvm4R60017getOperandIdxNameEts PROGBITS 0000000000000000 0006f0 000022 00 AX 0 0 16
│ │ │ │ - [18] .rela.text._ZN4llvm4R60017getOperandIdxNameEts RELA 0000000000000000 0150a0 000030 18 I 607 17 8
│ │ │ │ + [18] .rela.text._ZN4llvm4R60017getOperandIdxNameEts RELA 0000000000000000 012bb0 000030 18 I 607 17 8
│ │ │ │ [19] .text._ZN4llvm4R60013getLDSNoRetOpEt PROGBITS 0000000000000000 000720 000049 00 AX 0 0 16
│ │ │ │ - [20] .rela.text._ZN4llvm4R60013getLDSNoRetOpEt RELA 0000000000000000 0150d0 000018 18 I 607 19 8
│ │ │ │ + [20] .rela.text._ZN4llvm4R60013getLDSNoRetOpEt RELA 0000000000000000 012be0 000018 18 I 607 19 8
│ │ │ │ [21] .text._ZN4llvm13R600InstrInfoC2ERKNS_13R600SubtargetE PROGBITS 0000000000000000 000770 00009f 00 AX 0 0 16
│ │ │ │ - [22] .rela.text._ZN4llvm13R600InstrInfoC2ERKNS_13R600SubtargetE RELA 0000000000000000 0150e8 000090 18 I 607 21 8
│ │ │ │ + [22] .rela.text._ZN4llvm13R600InstrInfoC2ERKNS_13R600SubtargetE RELA 0000000000000000 012bf8 000090 18 I 607 21 8
│ │ │ │ [23] .text._ZNK4llvm13R600InstrInfo8isVectorERKNS_12MachineInstrE PROGBITS 0000000000000000 000810 000018 00 AX 0 0 16
│ │ │ │ [24] .text._ZNK4llvm13R600InstrInfo11copyPhysRegERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEERKNS_8DebugLocENS_8RegisterES9_bbb PROGBITS 0000000000000000 000830 0002fe 00 AX 0 0 16
│ │ │ │ - [25] .rela.text._ZNK4llvm13R600InstrInfo11copyPhysRegERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEERKNS_8DebugLocENS_8RegisterES9_bbb RELA 0000000000000000 015178 000150 18 I 607 24 8
│ │ │ │ + [25] .rela.text._ZNK4llvm13R600InstrInfo11copyPhysRegERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEERKNS_8DebugLocENS_8RegisterES9_bbb RELA 0000000000000000 012c88 000150 18 I 607 24 8
│ │ │ │ [26] .text._ZNK4llvm13R600InstrInfo23buildDefaultInstructionERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEEjjjj PROGBITS 0000000000000000 000b30 000368 00 AX 0 0 16
│ │ │ │ - [27] .rela.text._ZNK4llvm13R600InstrInfo23buildDefaultInstructionERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEEjjjj RELA 0000000000000000 0152c8 000258 18 I 607 26 8
│ │ │ │ + [27] .rela.text._ZNK4llvm13R600InstrInfo23buildDefaultInstructionERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEEjjjj RELA 0000000000000000 012dd8 000258 18 I 607 26 8
│ │ │ │ [28] .text._ZNK4llvm13R600InstrInfo13getOperandIdxERKNS_12MachineInstrENS_4R6006OpNameE PROGBITS 0000000000000000 000ea0 000024 00 AX 0 0 16
│ │ │ │ - [29] .rela.text._ZNK4llvm13R600InstrInfo13getOperandIdxERKNS_12MachineInstrENS_4R6006OpNameE RELA 0000000000000000 015520 000030 18 I 607 28 8
│ │ │ │ + [29] .rela.text._ZNK4llvm13R600InstrInfo13getOperandIdxERKNS_12MachineInstrENS_4R6006OpNameE RELA 0000000000000000 013030 000030 18 I 607 28 8
│ │ │ │ [30] .text._ZNK4llvm13R600InstrInfo19isLegalToSplitMBBAtERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEE PROGBITS 0000000000000000 000ed0 0000b5 00 AX 0 0 16
│ │ │ │ - [31] .rela.text._ZNK4llvm13R600InstrInfo19isLegalToSplitMBBAtERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEE RELA 0000000000000000 015550 000030 18 I 607 30 8
│ │ │ │ + [31] .rela.text._ZNK4llvm13R600InstrInfo19isLegalToSplitMBBAtERNS_17MachineBasicBlockENS_26MachineInstrBundleIteratorINS_12MachineInstrELb0EEE RELA 0000000000000000 013060 000030 18 I 607 30 8
│ │ │ │ [32] .text._ZNK4llvm13R600InstrInfo5isMovEj PROGBITS 0000000000000000 000f90 00001e 00 AX 0 0 16
│ │ │ │ [33] .text._ZNK4llvm13R600InstrInfo13isReductionOpEj PROGBITS 0000000000000000 000fb0 000003 00 AX 0 0 16
│ │ │ │ [34] .text._ZNK4llvm13R600InstrInfo8isCubeOpEj PROGBITS 0000000000000000 000fc0 00001c 00 AX 0 0 16
│ │ │ │ [35] .text._ZNK4llvm13R600InstrInfo10isALUInstrEj PROGBITS 0000000000000000 000fe0 000017 00 AX 0 0 16
│ │ │ │ [36] .text._ZNK4llvm13R600InstrInfo17hasInstrModifiersEj PROGBITS 0000000000000000 001000 00001a 00 AX 0 0 16
│ │ │ │ [37] .text._ZNK4llvm13R600InstrInfo10isLDSInstrEj PROGBITS 0000000000000000 001020 00001a 00 AX 0 0 16
│ │ │ │ [38] .text._ZNK4llvm13R600InstrInfo13isLDSRetInstrEj PROGBITS 0000000000000000 001040 000036 00 AX 0 0 16
│ │ │ │ - [39] .rela.text._ZNK4llvm13R600InstrInfo13isLDSRetInstrEj RELA 0000000000000000 015580 000018 18 I 607 38 8
│ │ │ │ + [39] .rela.text._ZNK4llvm13R600InstrInfo13isLDSRetInstrEj RELA 0000000000000000 013090 000018 18 I 607 38 8
│ │ │ │ [40] .text._ZNK4llvm13R600InstrInfo13getOperandIdxEjNS_4R6006OpNameE PROGBITS 0000000000000000 001080 000023 00 AX 0 0 16
│ │ │ │ - [41] .rela.text._ZNK4llvm13R600InstrInfo13getOperandIdxEjNS_4R6006OpNameE RELA 0000000000000000 015598 000030 18 I 607 40 8
│ │ │ │ + [41] .rela.text._ZNK4llvm13R600InstrInfo13getOperandIdxEjNS_4R6006OpNameE RELA 0000000000000000 0130a8 000030 18 I 607 40 8
│ │ │ │ [42] .text._ZNK4llvm13R600InstrInfo18canBeConsideredALUERKNS_12MachineInstrE PROGBITS 0000000000000000 0010b0 000051 00 AX 0 0 16
│ │ │ │ [43] .text._ZNK4llvm13R600InstrInfo11isTransOnlyEj PROGBITS 0000000000000000 001110 000029 00 AX 0 0 16
│ │ │ │ [44] .text._ZNK4llvm13R600InstrInfo11isTransOnlyERKNS_12MachineInstrE PROGBITS 0000000000000000 001140 00002a 00 AX 0 0 16
│ │ │ │ [45] .text._ZNK4llvm13R600InstrInfo12isVectorOnlyEj PROGBITS 0000000000000000 001170 000016 00 AX 0 0 16
│ │ │ │ [46] .text._ZNK4llvm13R600InstrInfo12isVectorOnlyERKNS_12MachineInstrE PROGBITS 0000000000000000 001190 000017 00 AX 0 0 16
│ │ │ │ [47] .text._ZNK4llvm13R600InstrInfo8isExportEj PROGBITS 0000000000000000 0011b0 000016 00 AX 0 0 16
│ │ │ │ [48] .text._ZNK4llvm13R600InstrInfo15usesVertexCacheEj PROGBITS 0000000000000000 0011d0 00002a 00 AX 0 0 16
│ │ │ │ [49] .text._ZNK4llvm13R600InstrInfo15usesVertexCacheERKNS_12MachineInstrE PROGBITS 0000000000000000 001200 000094 00 AX 0 0 16
│ │ │ │ - [50] .rela.text._ZNK4llvm13R600InstrInfo15usesVertexCacheERKNS_12MachineInstrE RELA 0000000000000000 0155c8 000018 18 I 607 49 8
│ │ │ │ + [50] .rela.text._ZNK4llvm13R600InstrInfo15usesVertexCacheERKNS_12MachineInstrE RELA 0000000000000000 0130d8 000018 18 I 607 49 8
│ │ │ │ [51] .text._ZNK4llvm13R600InstrInfo16usesTextureCacheEj PROGBITS 0000000000000000 0012a0 000038 00 AX 0 0 16
│ │ │ │ [52] .text._ZNK4llvm13R600InstrInfo16usesTextureCacheERKNS_12MachineInstrE PROGBITS 0000000000000000 0012e0 0000c8 00 AX 0 0 16
│ │ │ │ - [53] .rela.text._ZNK4llvm13R600InstrInfo16usesTextureCacheERKNS_12MachineInstrE RELA 0000000000000000 0155e0 000018 18 I 607 52 8
│ │ │ │ + [53] .rela.text._ZNK4llvm13R600InstrInfo16usesTextureCacheERKNS_12MachineInstrE RELA 0000000000000000 0130f0 000018 18 I 607 52 8
│ │ │ │ [54] .text._ZNK4llvm13R600InstrInfo18mustBeLastInClauseEj PROGBITS 0000000000000000 0013b0 000015 00 AX 0 0 16
│ │ │ │ [55] .text._ZNK4llvm13R600InstrInfo19usesAddressRegisterERNS_12MachineInstrE PROGBITS 0000000000000000 0013d0 00001c 00 AX 0 0 16
│ │ │ │ - [56] .rela.text._ZNK4llvm13R600InstrInfo19usesAddressRegisterERNS_12MachineInstrE RELA 0000000000000000 0155f8 000018 18 I 607 55 8
│ │ │ │ + [56] .rela.text._ZNK4llvm13R600InstrInfo19usesAddressRegisterERNS_12MachineInstrE RELA 0000000000000000 013108 000018 18 I 607 55 8
│ │ │ │ [57] .text._ZNK4llvm13R600InstrInfo22definesAddressRegisterERNS_12MachineInstrE PROGBITS 0000000000000000 0013f0 00001f 00 AX 0 0 16
│ │ │ │ - [58] .rela.text._ZNK4llvm13R600InstrInfo22definesAddressRegisterERNS_12MachineInstrE RELA 0000000000000000 015610 000018 18 I 607 57 8
│ │ │ │ + [58] .rela.text._ZNK4llvm13R600InstrInfo22definesAddressRegisterERNS_12MachineInstrE RELA 0000000000000000 013120 000018 18 I 607 57 8
│ │ │ │ [59] .text._ZNK4llvm13R600InstrInfo14readsLDSSrcRegERKNS_12MachineInstrE PROGBITS 0000000000000000 001410 00010a 00 AX 0 0 16
│ │ │ │ - [60] .rela.text._ZNK4llvm13R600InstrInfo14readsLDSSrcRegERKNS_12MachineInstrE RELA 0000000000000000 015628 000030 18 I 607 59 8
│ │ │ │ + [60] .rela.text._ZNK4llvm13R600InstrInfo14readsLDSSrcRegERKNS_12MachineInstrE RELA 0000000000000000 013138 000030 18 I 607 59 8
│ │ │ │ [61] .text._ZNK4llvm13R600InstrInfo9getSelIdxEjj PROGBITS 0000000000000000 001520 0000ee 00 AX 0 0 16
│ │ │ │ - [62] .rela.text._ZNK4llvm13R600InstrInfo9getSelIdxEjj RELA 0000000000000000 015658 000138 18 I 607 61 8
│ │ │ │ + [62] .rela.text._ZNK4llvm13R600InstrInfo9getSelIdxEjj RELA 0000000000000000 013168 000138 18 I 607 61 8
│ │ │ │ [63] .text._ZNK4llvm13R600InstrInfo7getSrcsERNS_12MachineInstrE PROGBITS 0000000000000000 001610 000604 00 AX 0 0 16
│ │ │ │ - [64] .rela.text._ZNK4llvm13R600InstrInfo7getSrcsERNS_12MachineInstrE RELA 0000000000000000 015790 000108 18 I 607 63 8
│ │ │ │ + [64] .rela.text._ZNK4llvm13R600InstrInfo7getSrcsERNS_12MachineInstrE RELA 0000000000000000 0132a0 000108 18 I 607 63 8
│ │ │ │ [65] .text._ZNK4llvm13R600InstrInfo11ExtractSrcsERNS_12MachineInstrERKNS_8DenseMapIjjNS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjjEEEERj PROGBITS 0000000000000000 001c20 00035c 00 AX 0 0 16
│ │ │ │ - [66] .rela.text._ZNK4llvm13R600InstrInfo11ExtractSrcsERNS_12MachineInstrERKNS_8DenseMapIjjNS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjjEEEERj RELA 0000000000000000 015898 0000c0 18 I 607 65 8
│ │ │ │ + [66] .rela.text._ZNK4llvm13R600InstrInfo11ExtractSrcsERNS_12MachineInstrERKNS_8DenseMapIjjNS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjjEEEERj RELA 0000000000000000 0133a8 0000c0 18 I 607 65 8
│ │ │ │ [67] .text._ZNK4llvm13R600InstrInfo11isLegalUpToERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERKNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ PROGBITS 0000000000000000 001f80 000455 00 AX 0 0 16
│ │ │ │ - [68] .rela.text._ZNK4llvm13R600InstrInfo11isLegalUpToERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERKNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ RELA 0000000000000000 015958 0000a8 18 I 607 67 8
│ │ │ │ + [68] .rela.text._ZNK4llvm13R600InstrInfo11isLegalUpToERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERKNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ RELA 0000000000000000 013468 0000a8 18 I 607 67 8
│ │ │ │ [69] .rodata._ZNK4llvm13R600InstrInfo11isLegalUpToERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERKNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ PROGBITS 0000000000000000 0023d8 000014 00 A 0 0 4
│ │ │ │ - [70] .rela.rodata._ZNK4llvm13R600InstrInfo11isLegalUpToERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERKNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ RELA 0000000000000000 015a00 000078 18 I 607 69 8
│ │ │ │ + [70] .rela.rodata._ZNK4llvm13R600InstrInfo11isLegalUpToERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERKNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ RELA 0000000000000000 013510 000078 18 I 607 69 8
│ │ │ │ [71] .text._ZNK4llvm13R600InstrInfo24FindSwizzleForVectorSlotERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ PROGBITS 0000000000000000 0023f0 000152 00 AX 0 0 16
│ │ │ │ - [72] .rela.text._ZNK4llvm13R600InstrInfo24FindSwizzleForVectorSlotERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ RELA 0000000000000000 015a78 000048 18 I 607 71 8
│ │ │ │ + [72] .rela.text._ZNK4llvm13R600InstrInfo24FindSwizzleForVectorSlotERKNSt3__16vectorINS2_INS1_4pairIijEENS1_9allocatorIS4_EEEENS5_IS7_EEEERNS2_INS0_11BankSwizzleENS5_ISC_EEEERKS7_SC_ RELA 0000000000000000 013588 000048 18 I 607 71 8
│ │ │ │ [73] .text._ZNK4llvm13R600InstrInfo23fitsReadPortLimitationsERKNSt3__16vectorIPNS_12MachineInstrENS1_9allocatorIS4_EEEERKNS_8DenseMapIjjNS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjjEEEERNS2_INS0_11BankSwizzleENS5_ISJ_EEEEb PROGBITS 0000000000000000 002550 000695 00 AX 0 0 16
│ │ │ │ - [74] .rela.text._ZNK4llvm13R600InstrInfo23fitsReadPortLimitationsERKNSt3__16vectorIPNS_12MachineInstrENS1_9allocatorIS4_EEEERKNS_8DenseMapIjjNS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjjEEEERNS2_INS0_11BankSwizzleENS5_ISJ_EEEEb RELA 0000000000000000 015ac0 0001c8 18 I 607 73 8
│ │ │ │ + [74] .rela.text._ZNK4llvm13R600InstrInfo23fitsReadPortLimitationsERKNSt3__16vectorIPNS_12MachineInstrENS1_9allocatorIS4_EEEERKNS_8DenseMapIjjNS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjjEEEERNS2_INS0_11BankSwizzleENS5_ISJ_EEEEb RELA 0000000000000000 0135d0 0001c8 18 I 607 73 8
│ │ │ │ [75] .text._ZNK4llvm13R600InstrInfo24fitsConstReadLimitationsERKNSt3__16vectorIjNS1_9allocatorIjEEEE PROGBITS 0000000000000000 002bf0 00004f 00 AX 0 0 16
│ │ │ │ [76] .text._ZNK4llvm13R600InstrInfo24fitsConstReadLimitationsERKNSt3__16vectorIPNS_12MachineInstrENS1_9allocatorIS4_EEEE PROGBITS 0000000000000000 002c40 00045c 00 AX 0 0 16
│ │ │ │ - [77] .rela.text._ZNK4llvm13R600InstrInfo24fitsConstReadLimitationsERKNSt3__16vectorIPNS_12MachineInstrENS1_9allocatorIS4_EEEE RELA 0000000000000000 015c88 000168 18 I 607 76 8
│ │ │ │ + [77] .rela.text._ZNK4llvm13R600InstrInfo24fitsConstReadLimitationsERKNSt3__16vectorIPNS_12MachineInstrENS1_9allocatorIS4_EEEE RELA 0000000000000000 013798 000168 18 I 607 76 8
│ │ │ │ [78] .text._ZNK4llvm13R600InstrInfo25CreateTargetScheduleStateERKNS_19TargetSubtargetInfoE PROGBITS 0000000000000000 0030a0 000016 00 AX 0 0 16
│ │ │ │ - [79] .rela.text._ZNK4llvm13R600InstrInfo25CreateTargetScheduleStateERKNS_19TargetSubtargetInfoE RELA 0000000000000000 015df0 000018 18 I 607 78 8
│ │ │ │ + [79] .rela.text._ZNK4llvm13R600InstrInfo25CreateTargetScheduleStateERKNS_19TargetSubtargetInfoE RELA 0000000000000000 013900 000018 18 I 607 78 8
```
The full diff has over 600 MB, but I can try to upload it somewhere if needed.
Contributor guide
Research direction
Start by reproducing the nondeterministic AMDGPU build and inspect the R600 DFA packetizer and the generated R600InstrInfo.cpp.o differences described in the issue. Compare outputs across machines to identify the ordering source; done means producing identical R600 objects and hashes across builds, with a regression test if the relevant test location is found.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100