[XRay] Use wordsize-dependent alignment for index

This makes it simpler for the runtime to consistently handle the entries
in the function sled index in both 32 and 64 bit platforms where the
XRay runtime works.

Follow-up on D32693.

llvm-svn: 302111
This commit is contained in:
Dean Michael Berris 2017-05-04 04:55:46 +00:00
parent d4d09fd73d
commit ebdccd0c2d
1 changed files with 3 additions and 3 deletions

View File

@ -2811,10 +2811,10 @@ void AsmPrinter::emitXRayTable() {
// We then emit a single entry in the index per function. We use the symbols // We then emit a single entry in the index per function. We use the symbols
// that bound the instrumentation map as the range for a specific function. // that bound the instrumentation map as the range for a specific function.
// Each entry here will be 16-byte aligned, as we're writing down two // Each entry here will be 2 * word size aligned, as we're writing down two
// pointers. // pointers. This should work for both 32-bit and 64-bit platforms.
OutStreamer->SwitchSection(FnSledIndex); OutStreamer->SwitchSection(FnSledIndex);
OutStreamer->EmitCodeAlignment(16); OutStreamer->EmitCodeAlignment(2 * WordSizeBytes);
OutStreamer->EmitLabel(IdxRef); OutStreamer->EmitLabel(IdxRef);
OutStreamer->EmitSymbolValue(SledsStart, WordSizeBytes); OutStreamer->EmitSymbolValue(SledsStart, WordSizeBytes);
OutStreamer->EmitSymbolValue(SledsEnd, WordSizeBytes); OutStreamer->EmitSymbolValue(SledsEnd, WordSizeBytes);