[Lldb-commits] [lldb] [lldb] Introduce Language::AreEquivalentFunctions (PR #112720)

Felipe de Azevedo Piovezan via lldb-commits lldb-commits at lists.llvm.org
Fri Oct 18 10:46:04 PDT 2024


felipepiovezan wrote:

> > > > > do we have in mind any other languages that will implement this?
> > > > 
> > > > 
> > > > I suspect any language wanting to implement this notion of function splitting (e.g. all the users of corosplitter) and virtual frames could have a use for this
> > > 
> > > 
> > > We already have `.cold` functions that do this in clang. Might be nice to support that on the llvm side so this could be testable here.
> > 
> > 
> > There are two things that confuse me about this idea:
> > 
> > * I thought `.cold` functions came from the hot-cold-split pass, not from Clang?
> 
> I was speaking loosely, meaning "in the llvm.org not the swift fork of llvm-project (and thus testable there). We'd have to decide which runtime this would go in, maybe we need an "assembly language" or a general fallback runtime for this?
> 
> > * Don't those create a new frame on the stack, i.e. a new CFA?
> 
> I don't remember whether they push a frame or tail call.

I looked at the code that creates `.cold` functions, and it doesn't seem to tail call, creating a new frame instead (at least the `.ll` tests have no `musttail` attribute in those functions).

Maybe some C++-specific construct that could go through the C++ language plugin? I tried their coroutines, but the IR generated wasn't very promising either and TTTT I'm not familiar with how they are compiled.

https://github.com/llvm/llvm-project/pull/112720


More information about the lldb-commits mailing list