[bolt,AArch64] Fix one more test failure from D130358.This one actually makes the test simpler, because lit doesn't have toreconstitute a 32-bit little-endian value from individual bytes anymore:
[bolt,AArch64] Fix one more test failure from D130358.This one actually makes the test simpler, because lit doesn't have toreconstitute a 32-bit little-endian value from individual bytes anymore: llvm-objdump is printing the desired 32-bit value in the firstplace, so we can move straight on to doing the arithmetic on it.
show more ...
[BOLT][AArch64] Handle gold linker veneersThe gold linker veneers are written between functions without symbols,so we to handle it specially in BOLT.Vladislav Khmelevsky,Advanced Software Techn
[BOLT][AArch64] Handle gold linker veneersThe gold linker veneers are written between functions without symbols,so we to handle it specially in BOLT.Vladislav Khmelevsky,Advanced Software Technology Lab, HuaweiDifferential Revision: https://reviews.llvm.org/D129260
[BOLT] Restrict execution of tests that fail on WindowsTurn off execution of tests that use UNIX-specific features.Reviewed By: AmirDifferential Revision: https://reviews.llvm.org/D126933
Revert "Rebase: [Facebook] Revert "[BOLT] Update dynamic relocations from section relocations""This reverts commit 76029cc53e838e6d86b13b0c39152f474fb09263.
Rebase: [Facebook] Revert "[BOLT] Update dynamic relocations from section relocations"Summary:This reverts commit 729d29e167a553ee1190c310b6a510db8d8731ac.Needed as a workaround for T112872562.
Rebase: [Facebook] Revert "[BOLT] Update dynamic relocations from section relocations"Summary:This reverts commit 729d29e167a553ee1190c310b6a510db8d8731ac.Needed as a workaround for T112872562.Manual rebase conflict history:https://phabricator.intern.facebook.com/D35230076https://phabricator.intern.facebook.com/D35681740Test Plan: sandcastleReviewers: #llvm-boltSubscribers: spupyrevDifferential Revision: https://phabricator.intern.facebook.com/D37098481
Revert "[BOLT][AArch64] Handle gold linker veneers"This reverts commit 425dda76e9fac93117289fd68a2abdfb1e4a0ba5.This commit is currently causing BOLT to crash in one of ourbinaries and needs a b
Revert "[BOLT][AArch64] Handle gold linker veneers"This reverts commit 425dda76e9fac93117289fd68a2abdfb1e4a0ba5.This commit is currently causing BOLT to crash in one of ourbinaries and needs a bit more checking to make sure it is safeto land.
[BOLT][AArch64] Handle gold linker veneersThe gold linker veneers are written between functions without symbols,so we to handle it specially in BOLT.Vladislav Khmelevsky,Advanced Software Technology Lab, HuaweiDifferential Revision: https://reviews.llvm.org/D128082
[BOLT][TEST] Use double dash flags in testsReplace a single dash with a double dash for options that have morethan a single letter.llvm-bolt-wrapper.py has special treatment for output options s
[BOLT][TEST] Use double dash flags in testsReplace a single dash with a double dash for options that have morethan a single letter.llvm-bolt-wrapper.py has special treatment for output options such as"-o" and "-w" causing issues when a single dash is used, e.g. for"-write-dwp". The wrapper can be fixed as well, but using a double dashhas other advantages as well.Reviewed By: rafaulerDifferential Revision: https://reviews.llvm.org/D127538
[BOLT][AArch64] Handle data at the beginning of a function when disassembling and building CFG.This patch adds getFirstInstructionOffset method for BinaryFunctionwhich is used to properly handle c
[BOLT][AArch64] Handle data at the beginning of a function when disassembling and building CFG.This patch adds getFirstInstructionOffset method for BinaryFunctionwhich is used to properly handle cases where data is at zero offset ina function. The main change is that we add basic block at firstinstruction offset when disassembling, which prevents assertionfailures in buildCFG.Reviewed By: yota9, rafaulerDifferential Revision: https://reviews.llvm.org/D127111
[BOLT] [AArch64] Handle constant islands spanning multiple functionsFix BOLT's constant island mapping when a constant island marked by $dspans multiple functions. Currently, because BOLT only mar
[BOLT] [AArch64] Handle constant islands spanning multiple functionsFix BOLT's constant island mapping when a constant island marked by $dspans multiple functions. Currently, because BOLT only marks theconstant island in the first function where $d is located, if the nextfunction contains data at its start, BOLT will miss the data and tryto disassemble it. This patch adds code to explicitly go through allsymbols between $d and $x markers and mark their respective offsets asdata, which stops BOLT from trying to disassemble data. It also addsMarkerType enum and refactors related functions.Reviewed By: yota9, rafaulerDifferential Revision: https://reviews.llvm.org/D126177
[BOLT][TEST] Fix testing on macos- Fix common (arch-independent) tests to explicitly target -linux triple.- Override the triple inside arch-specific tests.- Add cflags to common tests.- Update i
[BOLT][TEST] Fix testing on macos- Fix common (arch-independent) tests to explicitly target -linux triple.- Override the triple inside arch-specific tests.- Add cflags to common tests.- Update individual tests.- Expand pipe stderr `|&` shorthand.Reviewed By: rafaulerDifferential Revision: https://reviews.llvm.org/D125548
[BOLT][TEST] Remove -gdwarf-4 override from %cflagsAs BOLT support for monolithic and split DWARF5 is added, remove DWARF versionoverride for BOLT tests.Reviewed By: ayermoloDifferential Revis
[BOLT][TEST] Remove -gdwarf-4 override from %cflagsAs BOLT support for monolithic and split DWARF5 is added, remove DWARF versionoverride for BOLT tests.Reviewed By: ayermoloDifferential Revision: https://reviews.llvm.org/D125366
[BOLT] Fix r_aarch64_prelxx testThe relocation value is calculated using the formula S + A - P,the verification of the value is performed by inversely calculating the location addressReviewed By
[BOLT] Fix r_aarch64_prelxx testThe relocation value is calculated using the formula S + A - P,the verification of the value is performed by inversely calculating the location addressReviewed By: AmirDifferential Revision: https://reviews.llvm.org/D124270
[BOLT] Update skipRelocation for aarch64The ld might relax ADRP+ADD or ADRP+LDR sequences to the ADR+NOP, addthe new case to the skipRelocation for aarch64.Vladislav Khmelevsky,Advanced Softwar
[BOLT] Update skipRelocation for aarch64The ld might relax ADRP+ADD or ADRP+LDR sequences to the ADR+NOP, addthe new case to the skipRelocation for aarch64.Vladislav Khmelevsky,Advanced Software Technology Lab, HuaweiDifferential Revision: https://reviews.llvm.org/D123334
[BOLT][TEST] Remove -no-pie from cflags/cxxflagsAlign with an upstream change D120305 to make PIE the default on linux-gnu.Add `-no-pie` to tests that require it.Reviewed By: maksfb, yota9Dif
[BOLT][TEST] Remove -no-pie from cflags/cxxflagsAlign with an upstream change D120305 to make PIE the default on linux-gnu.Add `-no-pie` to tests that require it.Reviewed By: maksfb, yota9Differential Revision: https://reviews.llvm.org/D123329
[BOLT] Fix two aarch64 teststls-lld test might be broken since compiler might optimize plt functioncall and use address directly from got table. The test is removed sinceplt-gnu-ld checks the sam
[BOLT] Fix two aarch64 teststls-lld test might be broken since compiler might optimize plt functioncall and use address directly from got table. The test is removed sinceplt-gnu-ld checks the same functionality + versioning symbol matching,no need to keep both of the tests.The toolchain might optimize relocations in runtime-relocs test, replacethe test compilation with yaml files.Differential Revision: https://reviews.llvm.org/D123332
[BOLT][test] Fix X86 testsDifferential Revision: https://reviews.llvm.org/D123133
[BOLT] Check for !isTailCall in isUnconditionalBranchAdd !isTailCall in isUnconditionalBranch check in order to sync the x86and aarch64 and fix the fixDoubleJumps pass on aarch64.Vladislav Khmel
[BOLT] Check for !isTailCall in isUnconditionalBranchAdd !isTailCall in isUnconditionalBranch check in order to sync the x86and aarch64 and fix the fixDoubleJumps pass on aarch64.Vladislav Khmelevsky,Advanced Software Technology Lab, HuaweiDifferential Revision: https://reviews.llvm.org/D122929
[BOLT] Fix plt relocations symbol matchThe bfd linker adds the symbol versioning string to the symbol name in symtab.Skip the versioning part in order to find the registered PLT function.Vladisl
[BOLT] Fix plt relocations symbol matchThe bfd linker adds the symbol versioning string to the symbol name in symtab.Skip the versioning part in order to find the registered PLT function.Vladislav Khmelevsky,Advanced Software Technology Lab, HuaweiDifferential Revision: https://reviews.llvm.org/D122039
[BOLT][test] Fix AArch64 testRemove header dependency from cross-platform test.Reviewed By: yota9Differential Revision: https://reviews.llvm.org/D123107
[BOLT][test] Enable cross-target testingCheck for supported target architecture instead of the host arch whendeciding to execute non-runtime tests.Reviewed By: AmirDifferential Revision: https
[BOLT][test] Enable cross-target testingCheck for supported target architecture instead of the host arch whendeciding to execute non-runtime tests.Reviewed By: AmirDifferential Revision: https://reviews.llvm.org/D122498
[BOLT] AArch64: Read all static relocationsRead static relocs on the same address, as dynamic in order to updateconstant island data address properly.Differential Revision: https://reviews.llvm.
[BOLT] AArch64: Read all static relocationsRead static relocs on the same address, as dynamic in order to updateconstant island data address properly.Differential Revision: https://reviews.llvm.org/D122100
[BOLT][test] Fix AArch64 cross-platform testsUse target-specific flags for building AArch64 non-runnable tests.Reviewed By: yota9Differential Revision: https://reviews.llvm.org/D122520
[BOLT] AArch64: Emit text objectsBOLT treats aarch64 objects located in text as empty functions withcontant islands. Emit them with at least 8-byte alignment to the newtext section.Vladislav Kh
[BOLT] AArch64: Emit text objectsBOLT treats aarch64 objects located in text as empty functions withcontant islands. Emit them with at least 8-byte alignment to the newtext section.Vladislav Khmelevsky,Advanced Software Technology Lab, HuaweiDifferential Revision: https://reviews.llvm.org/D122097
[BOLT] Align constant islands to 8 bytesAArch64 requires CI to be aligned to 8 bytes due to access instructionsrestrictions. E.g. the ldr with imm, where imm must be aligned to 8 bytes.Different
[BOLT] Align constant islands to 8 bytesAArch64 requires CI to be aligned to 8 bytes due to access instructionsrestrictions. E.g. the ldr with imm, where imm must be aligned to 8 bytes.Differential Revision: https://reviews.llvm.org/D122065
12