[LLVMdev] Inserting a branch in PPCTargetLowering::LowerFormalArguments_SVR4

Jim Grosbach grosbach at apple.com
Thu May 10 11:39:10 PDT 2012


Hi Hal,

For lowering code that requires inserting branches, you need to use a custom inserter, yes. Theoretically, that does indeed sound like what you want to do here.

It's complicated by the general structure of argument passing, though. In particular, there's lots of assumptions about the call sequence stuff. I don't know if things are smart enough (EH in particular worries me) to handle this sort of thing. On the plus side, there are copious assert() bits in there to catch it if the compiler gets itself confused, so you should know sooner rather than later if something goes wonky.

-Jim

On May 10, 2012, at 11:25 AM, Hal Finkel <hfinkel at anl.gov> wrote:

> I hate to be bothersome, but can someone please comment on this?
> 
> Thanks again,
> Hal
> 
> On Thu, 3 May 2012 14:49:04 -0500
> Hal Finkel <hfinkel at anl.gov> wrote:
> 
>> Hello,
>> 
>> The current code in PPCTargetLowering::LowerFormalArguments_SVR4
>> contains a FIXME over the code which saves the live floating-point
>> registers to the stack. The FIXME states that this should only be done
>> if CR bit 6 is set. I've been told that the lack of this check is
>> preventing clang/LLVM from compiling a functional FreeBSD kernel on
>> PPC.
>> 
>> Is is possible to insert another branch in LowerFormalArguments? Some
>> of the atomic instructions insert branches, but those are handled in
>> EmitInstrWithCustomInserter. Can branches be inserted inside
>> LowerFormalArguments in the same way?
>> 
>> Thanks in advance,
>> Hal
>> 
> 
> 
> 
> -- 
> Hal Finkel
> Postdoctoral Appointee
> Leadership Computing Facility
> Argonne National Laboratory
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list