This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Create relocations for unconditional branches.
ClosedPublic

Authored by fhahn on Jun 5 2017, 9:13 AM.

Details

Summary

Relocations are required for unconditional branches to function symbols with
different execution mode. Without this patch, incorrect branches are
generated for tail calls between functions with different execution
mode.

Diff Detail

Event Timeline

fhahn created this revision.Jun 5 2017, 9:13 AM

With this change, only 4 tests fail with an ARM bootstrap build with a version of clang that randomly adds +thumb-mode. The failures seem unrelated to Thumb mode

LLVM-Unit :: DebugInfo/DWARF/DebugInfoDWARFTests/DWARFDebugInfo.TestDwarfVerifyInvalidCURef
LLVM-Unit :: DebugInfo/DWARF/DebugInfoDWARFTests/DWARFDebugInfo.TestDwarfVerifyInvalidLineFileIndex
LLVM-Unit :: DebugInfo/DWARF/DebugInfoDWARFTests/DWARFDebugInfo.TestDwarfVerifyInvalidLineSequence
LLVM-Unit :: DebugInfo/DWARF/DebugInfoDWARFTests/DWARFDebugInfo.TestDwarfVerifyInvalidStmtList
LLVM :: Bindings/Go/go.test

That's down from a couple of thousand failures without this patch!

peter.smith accepted this revision.Jun 6 2017, 2:00 AM

I'm happy with these changes. Again, will be worth seeing if there are any objections from later time zones before committing.

This revision is now accepted and ready to land.Jun 6 2017, 2:00 AM
fhahn closed this revision.Jun 7 2017, 1:55 AM