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