Page MenuHomePhabricator

[PowerPC][XCOFF] Create 8 and 16 byte aligned constant csects.
Needs ReviewPublic

Authored by sfertile on May 25 2021, 10:48 AM.

Details

Summary

Fixes issue where late materialized constants can be more strictly aligned than their containing csect, whose alignment can't be updated after emitting the .csect asm directive. Add rodata csects for 8 and 16 byte aligned constants, and map constant to those csects based on their alignment.

Diff Detail

Unit TestsFailed

TimeTest
580 msx64 debian > Clang.Driver::Xlinker-args.c
Script: -- : 'RUN: at line 4'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -target i386-apple-darwin9 -### -Xlinker one -Xlinker --no-demangle -Wl,two,--no-demangle,three -Xlinker four -z five -r /var/lib/buildkite-agent/builds/llvm-project/clang/test/Driver/Xlinker-args.c 2> /var/lib/buildkite-agent/builds/llvm-project/build/tools/clang/test/Driver/Output/Xlinker-args.c.tmp
1,610 msx64 windows > Clang.Driver::Xlinker-args.c
Script: -- : 'RUN: at line 4'; c:\ws\w16-1\llvm-project\premerge-checks\build\bin\clang.exe -target i386-apple-darwin9 -### -Xlinker one -Xlinker --no-demangle -Wl,two,--no-demangle,three -Xlinker four -z five -r C:\ws\w16-1\llvm-project\premerge-checks\clang\test\Driver\Xlinker-args.c 2> C:\ws\w16-1\llvm-project\premerge-checks\build\tools\clang\test\Driver\Output\Xlinker-args.c.tmp

Event Timeline

sfertile created this revision.May 25 2021, 10:48 AM
sfertile requested review of this revision.May 25 2021, 10:48 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 25 2021, 10:48 AM
llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
2419

s/then/than/;

2426

Please fix formatting.

llvm/test/CodeGen/PowerPC/aix-rodata-align.ll
8

Would an XCOFF output case be reasonable to test here?

sfertile updated this revision to Diff 362830.Thu, Jul 29, 11:27 AM

Spelling and formatting fixes, and added coverage for the XCOFF object writing.