[LLVMdev] RFC: Darwin EH Patch

Bill Wendling isanbard at gmail.com
Tue Sep 11 00:36:48 PDT 2007


Hi Anton,

> I don't personally like this patch. It seems, that emitted data  
> encoding
> is linker (=subtarget) specific. For example, gcc uses three different
> data encodings to emit dwarf data on darwin.

But that's why I put the "decoration" in the TargetAsmInfo object,  
and then handled the printing of the global stubs separately at the  
subtarget level. Or do you mean that emitting the personality  
information should be done completely in the back-end?

> I think we should introduce subtarget hooks for encoding selection of
> data being emitted (there is already one: needSet / *AbsoluteOffsets
> etc). Also "generic" function for emission of data in specified format
> should be written (it should take care about decoration also).

I agree with you in general. We should have good abstractions for  
emitting ASM code. How would you modify the structure of the codegen  
stuff to make the personality function emission be the same?

> This will allow to describe target-specific stuff in one place instead
> of introducing / tweaking bunch of magic knobs.

It's not exactly tweaking magic knobs. It's doing something that's  
already done -- putting the information in the TAI object, and  
allowing the specific back-end to set the appropriate strings.

> Comments? Ideas?

If I understand you correctly, this seems like a bigger project than  
simply getting the personality function to work for Darwin. :-)

-bw




More information about the llvm-dev mailing list