[llvm] [CodeGen] Refactor and document ThunkInserter (PR #97468)
Kristof Beyls via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 3 05:44:05 PDT 2024
================
@@ -95,19 +165,14 @@ bool ThunkInserter<Derived, InsertedThunksTy>::run(MachineModuleInfo &MMI,
MachineFunction &MF) {
// If MF is not a thunk, check to see if we need to insert a thunk.
if (!MF.getName().starts_with(getDerived().getThunkPrefix())) {
- // Only add a thunk if one of the functions has the corresponding feature
- // enabled in its subtarget, and doesn't enable external thunks. The target
- // can use InsertedThunks to detect whether relevant thunks have already
- // been inserted.
- // FIXME: Conditionalize on indirect calls so we don't emit a thunk when
- // nothing will end up calling it.
- // FIXME: It's a little silly to look at every function just to enumerate
- // the subtargets, but eventually we'll want to look at them for indirect
- // calls, so maybe this is OK.
- if (!getDerived().mayUseThunk(MF, InsertedThunks))
+ // Only add thunks if one of the functions may use them.
+ if (!getDerived().mayUseThunk(MF))
return false;
- InsertedThunks |= getDerived().insertThunks(MMI, MF);
+ // The target can use InsertedThunks to detect whether relevant thunks
+ // have already been inserted.
+ // FIXME: Make insertThunks return if MF was modified.
----------------
kbeyls wrote:
I don't understand this FIXME well. Could you explain in a bit more detail what this FIXME is about?
https://github.com/llvm/llvm-project/pull/97468
More information about the llvm-commits
mailing list