[llvm] [RISCV] Add hasSideEffects = true to ReadFRM (PR #139864)
    Craig Topper via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri May 16 14:38:45 PDT 2025
    
    
  
topperc wrote:
> > > > Does implementing `RISCVTargetLowering::getRoundingControlRegisters()` fix this?
> > > 
> > > 
> > > No. As far as I understand, this is used in case of inline asm.
> > 
> > 
> > It's used to add FRM as an implicit def to calls.
> > ```
> >   // Add rounding control registers as implicit def for function call.
> >   if (II.isCall() && MF->getFunction().hasFnAttribute(Attribute::StrictFP)) {
> >     ArrayRef<MCPhysReg> RCRegs = TLI->getRoundingControlRegisters();
> >     for (MCPhysReg Reg : RCRegs)
> >       UsedRegs.push_back(Reg);
> >   } 
> > ```
> > 
> > 
> >     
> >       
> >     
> > 
> >       
> >     
> > 
> >     
> >   
> > I've tested locally that it does fix your test case.
> 
> Oops I missed that if, sorry, but yes I also implemented `RISCVTargetLowering::getRoundingControlRegisters()` and machine-cse still reordered things.
Do you have a test case that show this?
https://github.com/llvm/llvm-project/pull/139864
    
    
More information about the llvm-commits
mailing list