Mehdi Amini | d7ad221 | 2016-04-01 05:33:11 +0000 | [diff] [blame] | 1 | ; Check per module hash. |
Peter Collingbourne | c855615 | 2017-07-06 17:56:01 +0000 | [diff] [blame] | 2 | ; RUN: opt -module-hash %s -o - | llvm-bcanalyzer -dump -check-hash=foo | FileCheck %s --check-prefix=MOD1 |
Mehdi Amini | d7ad221 | 2016-04-01 05:33:11 +0000 | [diff] [blame] | 3 | ; MOD1: <HASH op0={{[0-9]*}} op1={{[0-9]*}} op2={{[0-9]*}} op3={{[0-9]*}} op4={{[0-9]*}} (match)/> |
Peter Collingbourne | c855615 | 2017-07-06 17:56:01 +0000 | [diff] [blame] | 4 | ; RUN: opt -module-hash %p/Inputs/module_hash.ll -o - | llvm-bcanalyzer -dump -check-hash=bar | FileCheck %s --check-prefix=MOD2 |
Mehdi Amini | d7ad221 | 2016-04-01 05:33:11 +0000 | [diff] [blame] | 5 | ; MOD2: <HASH op0={{[0-9]*}} op1={{[0-9]*}} op2={{[0-9]*}} op3={{[0-9]*}} op4={{[0-9]*}} (match)/> |
| 6 | |
| 7 | ; Check that the hash matches in the combined index. |
| 8 | |
| 9 | ; First regenerate the modules with a summary |
Mehdi Amini | 68da426 | 2016-04-12 21:35:18 +0000 | [diff] [blame] | 10 | ; RUN: opt -module-hash -module-summary %s -o %t.m1.bc |
| 11 | ; RUN: opt -module-hash -module-summary %p/Inputs/module_hash.ll -o %t.m2.bc |
Mehdi Amini | d7ad221 | 2016-04-01 05:33:11 +0000 | [diff] [blame] | 12 | |
| 13 | ; Recover the hashes from the modules themselves. |
| 14 | ; RUN: llvm-bcanalyzer -dump %t.m1.bc | grep '<HASH' > %t.hash |
| 15 | ; RUN: llvm-bcanalyzer -dump %t.m2.bc | grep '<HASH' >> %t.hash |
| 16 | |
| 17 | ; Generate the combined index and gather the hashes there. |
| 18 | ; RUN: llvm-lto --thinlto-action=thinlink -o - %t.m1.bc %t.m2.bc | llvm-bcanalyzer -dump | grep '<HASH ' >> %t.hash |
| 19 | |
| 20 | ; Validate the output now, the hahes in the individual modules and the combined index are in the same file. |
| 21 | ; RUN: cat %t.hash | FileCheck %s --check-prefix=COMBINED |
| 22 | |
| 23 | ; First capture the value of the hash for the two modules. |
Peter Collingbourne | c855615 | 2017-07-06 17:56:01 +0000 | [diff] [blame] | 24 | ; COMBINED: <HASH op0=[[HASH1_1:[0-9]*]] op1=[[HASH1_2:[0-9]*]] op2=[[HASH1_3:[0-9]*]] op3=[[HASH1_4:[0-9]*]] op4=[[HASH1_5:[0-9]*]]/> |
| 25 | ; COMBINED: <HASH op0=[[HASH2_1:[0-9]*]] op1=[[HASH2_2:[0-9]*]] op2=[[HASH2_3:[0-9]*]] op3=[[HASH2_4:[0-9]*]] op4=[[HASH2_5:[0-9]*]]/> |
Mehdi Amini | d7ad221 | 2016-04-01 05:33:11 +0000 | [diff] [blame] | 26 | |
| 27 | ; Validate against the value extracted from the combined index |
| 28 | ; COMBINED-DAG: <HASH abbrevid={{[0-9]*}} op0=[[HASH1_1]] op1=[[HASH1_2]] op2=[[HASH1_3]] op3=[[HASH1_4]] op4=[[HASH1_5]]/> |
| 29 | ; COMBINED-DAG: <HASH abbrevid={{[0-9]*}} op0=[[HASH2_1]] op1=[[HASH2_2]] op2=[[HASH2_3]] op3=[[HASH2_4]] op4=[[HASH2_5]]/> |
| 30 | |
| 31 | |
| 32 | ; Need a function for the combined index to be populated. |
| 33 | define void @foo() { |
| 34 | ret void |
| 35 | } |