AZero13 wrote:

> Okay, looking at the patch, I see what you're doing and what you're trying to 
> say in the PR description: x86_64 GlobalISel still doesn't support this 
> bundle, so you've just changed it to force the use of SelectionDAG when it 
> sees such a bundle.
> 
> Now, I accept that the backend change is an improvement in the abstract — 
> it's bad that one instruction selector just fails to compile IR that's valid 
> for the other instruction selector, so if GlobalISel can't support these 
> bundles, it should definitely kick over to SelectionDAG. However, the point 
> of GlobalISel is to make -O0 builds faster, which means that Clang should not 
> be emitting IR constructs for common ObjC code patterns that would force the 
> use of SelectionDAG, because that means we'll necessarily regress -O0 build 
> times. So either this needs to continue to not use the bundle on x86_64 at 
> -O0, or you need to implement the bundle properly witout kicking over to 
> SelectionDAG.

So here's the problem: LowerCall will kick to SelectionDAG regardless anyway:
  // Handle only Linux C, X86_64_SysV calling conventions for now.
  if (!STI.isTargetLinux() || !(Info.CallConv == CallingConv::C ||
                                Info.CallConv == CallingConv::X86_64_SysV))
    return false;
    
    

https://github.com/llvm/llvm-project/pull/164875
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to