This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU/R600: Fix GlobalValue regressions.
ClosedPublic

Authored by jvesely on Jun 22 2016, 7:37 PM.

Details

Summary

Don't cast GV expression to MCSymbolRefExpr. r272705 changed GV to binary
expressions by including offset even if the offset it 0
(we haven't hit this sooner since tested workloads don't include static offsets)
We don't really care about the type of expression, so set it directly.
Fixes: r272705

Consider section relative relocations. Since all const as data is in one buffer section relative is equivalent to abs32.
Fixes: r273166

Diff Detail

Repository
rL LLVM

Event Timeline

jvesely updated this revision to Diff 61635.Jun 22 2016, 7:37 PM
jvesely retitled this revision from to AMDGPU/R600: Fix GlobalValue regressions..
jvesely updated this object.
jvesely added a reviewer: tstellarAMD.
jvesely set the repository for this revision to rL LLVM.
jvesely added subscribers: llvm-commits, arsenm.
jvesely updated this revision to Diff 61739.Jun 23 2016, 4:12 PM
jvesely updated this object.

remove double semicolon

tstellarAMD accepted this revision.Jun 23 2016, 7:31 PM
tstellarAMD edited edge metadata.

Sorry about breaking this. I guess we can't really add a lit test without assembler support.

This revision is now accepted and ready to land.Jun 23 2016, 7:31 PM
jvesely updated this revision to Diff 61779.Jun 24 2016, 5:47 AM
jvesely edited edge metadata.

change tests to output object format to test fixups

something like this might work. It detects crashes (and both bugs fixed in this patch) but not much else.
I was unsure about /dev/null, but it looks like the test has used it for some time. We can switch to %t0 if need be

jvesely updated this revision to Diff 61850.Jun 24 2016, 3:27 PM
jvesely updated this object.

better tests. use ABS32 for section relative relocs

This revision was automatically updated to reflect the committed changes.