tree c5655d75797516814f2508c98dc21408e7e67e8f
parent 999b9e6ddb4324600a46c8f7006acec81fe3af0f
author Mingming Liu <mingmingl@google.com> 1712803561 -0700
committer GitHub <noreply@github.com> 1712803561 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmF07pCRC1aQ7uu5UhlAAA6WwQABPtUW/0Zh6iThzr9aZsCj4k
 EmSjjsKf51g5Argu5t52iNTiaxT+bB/97c2Q3QijpJkhyD+lyxZVgx1kDB02BMKD
 HWTcXy7sWkspT0prNuYqTfZ95W67I2qOjLrjXFRS74dfuc6m2ewN5LJHFnrJA/qz
 ily2M35JrnIJFKkqDyaup86rw1GAzUepmekdt+5nOsDAgbQmmI1wlmAPGnlsFxK+
 rGKM2zRqyaDpIV1q4vRDLaQ1Eqo48hPPuP/IlN8QS3IRxJcC2DDat8b6LG8/lkJ4
 0m8f8Ou1JDY0nZTs+BIKsQ1g0cPqC5w06v+A9bTE1R91mFbdY99773F61etrlJe5
 yzjE81MyS75jT8mbqz9HlVmuFoiwQ8bo4VbJZNaeAVtsJQZEXUxux54EFB5Y/VSK
 rtcMowu9mjgYg0T58sNqmlQ4fLygk0xoO4VsFJDLRN6Jrlf8HwHiTz1UYUA9XYDV
 TCD7wXCNa6JR3ibn7J4tCXtG5DZ5hl8hkIbizbncGaqg7F8AKbAKCiyeDWpHeGo+
 S/7NVaOVQXlt04WtLLfGQkWu7ypUO8T/M92YbHgb6QR/b9+ZnpeMm70ezX0RA9yI
 vk09x3wADdsno4mx23zykxl0wTuxlPrxJIvyonbnDE6E87ygHK8drHvlX/VUyTdu
 VkobJ7oKch9N8F9KYpL/
 =myq2
 -----END PGP SIGNATURE-----
 

[ThinLTO]Record import type in GlobalValueSummary::GVFlags (#87597)

The motivating use case is to support import the function declaration
across modules to construct call graph edges for indirect calls [1]
when importing the function definition costs too much compile time
(e.g., the function is too large has no `noinline` attribute).
1. Currently, when the compiled IR module doesn't have a function
definition but its postlink combined summary contains the function
summary or a global alias summary with this function as aliasee, the
function definition will be imported from source module by IRMover. The
implementation is in FunctionImporter::importFunctions [2]
2. In order for FunctionImporter to import a declaration of a function,
both function summary and alias summary need to carry the def / decl
state. Specifically, all existing summary fields doesn't differ across
import modules, but the def / decl state of is decided by
`<ImportModule, Function>`.

This change encodes the def/decl state in `GlobalValueSummary::GVFlags`.

In the subsequent changes
1. The indexing step `computeImportForModule` [3]
will compute the set of definitions and the set of declarations for each
module, and passing on the information to bitcode writer.
2. Bitcode writer will look up the def/decl state and sets the state
when it writes out the flag value. This is demonstrated in
https://github.com/llvm/llvm-project/pull/87600
3. Function importer will read the def/decl state when reading the
combined summary to figure out two sets of global values, and IRMover
will be updated to import the declaration (aka linkGlobalValuePrototype [4])
into the destination module.

- The next change is https://github.com/llvm/llvm-project/pull/87600

[1] mentioned in rfc https://discourse.llvm.org/t/rfc-for-better-call-graph-sort-build-a-more-complete-call-graph-by-adding-more-indirect-call-edges/74029#support-cross-module-function-declaration-import-5
[2] https://github.com/llvm/llvm-project/blob/3b337242ee165554f0017b00671381ec5b1ba855/llvm/lib/Transforms/IPO/FunctionImport.cpp#L1608-L1764
[3] https://github.com/llvm/llvm-project/blob/3b337242ee165554f0017b00671381ec5b1ba855/llvm/lib/Transforms/IPO/FunctionImport.cpp#L856
[4] https://github.com/llvm/llvm-project/blob/3b337242ee165554f0017b00671381ec5b1ba855/llvm/lib/Linker/IRMover.cpp#L605