summaryrefslogtreecommitdiffstats
path: root/llvm/test/ThinLTO/X86/devirt.ll
Commit message (Collapse)AuthorAgeFilesLines
* Reland "Change the X86 datalayout to add three address spacesAmy Huang2019-09-101-1/+1
| | | | | | | | | | for 32 bit signed, 32 bit unsigned, and 64 bit pointers." This reverts 57076d3199fc2b0af4a3736b7749dd5462cacda5. Original review at https://reviews.llvm.org/D64931. Review for added fix at https://reviews.llvm.org/D66843. llvm-svn: 371568
* Revert "Change the X86 datalayout to add three address spaces for 32 bit ↵Vlad Tsyrklevich2019-08-281-1/+1
| | | | | | | | | signed," This reverts commit r370083 because it caused check-lld failures on sanitizer-x86_64-linux-fast. llvm-svn: 370142
* Change the X86 datalayout to add three address spaces for 32 bit signed,Amy Huang2019-08-271-1/+1
| | | | | | 32 bit unsigned, and 64 bit pointers. llvm-svn: 370083
* [ThinLTO] Implement index-based WPDTeresa Johnson2019-08-021-9/+47
| | | | | | | | | | | | | | | | | | | This patch adds support to the WholeProgramDevirt pass to perform index-based WPD, which is invoked from ThinLTO during the thin link. The ThinLTO backend (WPD import phase) behaves the same regardless of whether the WPD decisions were made with the index-based or (the existing) IR-based analysis. Depends on D54815. Reviewers: pcc Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, arphaman, dang, llvm-commits Differential Revision: https://reviews.llvm.org/D55153 llvm-svn: 367679
* [ThinLTO] Reenable test with workaround for known failureTeresa Johnson2019-07-031-39/+40
| | | | | | | | Reenable the testing disabled in r364978 with the same workaround used for this failure in the cfi-devirt.ll test. The known issue is PR39436, and the workaround is to add -verify-machineinstrs=0. llvm-svn: 364997
* [ThinLTO] Work around existing failure exposed by new testTeresa Johnson2019-07-021-36/+39
| | | | | | | | | | | | | | | | | | | | | When adding summary entries for index-based WPD (r364960), an added test also included some additional testing of the existing hybrid Thin/Regular LTO WPD (test/ThinLTO/X86/devirt.ll). That part of the test is producing a failure on the llvm-clang-x86_64-expensive-checks-win bot: *** Bad machine code: Explicit definition marked as use *** - function: __typeid__ZTS1A_0_branch_funnel - basic block: %bb.0 (0x81d4c58) - instruction: ICALL_BRANCH_FUNNEL %0:gr64, @0, 16, @_ZN1B1fEi, 48, @_ZN1C1fEi - operand 0: %0:gr64 LLVM ERROR: Found 1 machine code errors. This is functionality unrelated to the summary entries added with my patch, so I am disabling this part of the new test until it is addressed. I'll continue to investigate the failure. llvm-svn: 364978
* [ThinLTO] Dump input on failure in devirt testTeresa Johnson2019-07-021-2/+2
| | | | | | | To help track down bug exposed by llvm-clang-x86_64-expensive-checks-win bot. llvm-svn: 364973
* [ThinLTO] Add summary entries for index-based WPDTeresa Johnson2019-07-021-0/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: If LTOUnit splitting is disabled, the module summary analysis computes the summary information necessary to perform single implementation devirtualization during the thin link with the index and no IR. The information collected from the regular LTO IR in the current hybrid WPD algorithm is summarized, including: 1) For vtable definitions, record the function pointers and their offset within the vtable initializer (subsumes the information collected from IR by tryFindVirtualCallTargets). 2) A record for each type metadata summarizing the vtable definitions decorated with that metadata (subsumes the TypeIdentiferMap collected from IR). Also added are the necessary bitcode records, and the corresponding assembly support. The follow-on index-based WPD patch is D55153. Depends on D53890. Reviewers: pcc Subscribers: mehdi_amini, Prazek, inglorion, eraman, steven_wu, dexonsmith, arphaman, llvm-commits Differential Revision: https://reviews.llvm.org/D54815 llvm-svn: 364960
* Revert "[ThinLTO] Add summary entries for index-based WPD"Teresa Johnson2019-01-171-146/+0
| | | | | | | | Mistaken commit of something still under review! This reverts commit r351453. llvm-svn: 351455
* [ThinLTO] Add summary entries for index-based WPDTeresa Johnson2019-01-171-0/+146
Summary: If LTOUnit splitting is disabled, the module summary analysis computes the summary information necessary to perform single implementation devirtualization during the thin link with the index and no IR. The information collected from the regular LTO IR in the current hybrid WPD algorithm is summarized, including: 1) For vtable definitions, record the function pointers and their offset within the vtable initializer (subsumes the information collected from IR by tryFindVirtualCallTargets). 2) A record for each type metadata summarizing the vtable definitions decorated with that metadata (subsumes the TypeIdentiferMap collected from IR). Also added are the necessary bitcode records, and the corresponding assembly support. The index-based WPD will be sent as a follow-on. Depends on D53890. Reviewers: pcc Subscribers: mehdi_amini, Prazek, inglorion, eraman, steven_wu, dexonsmith, arphaman, llvm-commits Differential Revision: https://reviews.llvm.org/D54815 llvm-svn: 351453
OpenPOWER on IntegriCloud