On Sep 3, 2020, Segher Boessenkool <seg...@kernel.crashing.org> wrote:
> On Thu, Sep 03, 2020 at 02:17:04PM -0300, Alexandre Oliva wrote: >> On Sep 3, 2020, Segher Boessenkool <seg...@kernel.crashing.org> wrote: >> > Oh, I meant what was in your patch. From a grep, all of mn10300, nds32, >> > arm, cris, pdp11, rs6000, i386, visium, aarch64 have default clobbers. >> > Hrm, what you said was the targets with inline asm flag output >> > constraints? >> >> I found implicit cc clobbers on x86 only, and then I stumbled across the >> same notation used for asm cc-setting in arm/aarch64, but that was all, >> I didn't look any further (yet). > mn10300, cris, pdp11 (twice), i386, visium at least. Thanks, yeah, I was hoping to get the general approach sorted out before going through all ports. > The idea is that none of them will need adjustment. This hook runs > before the "none" code will run, and it can just clear all clobbers > then. Uhh... That's not how asm expansion works. We process inputs, outputs, clobbers and labels first, *then* we pass all the cooked ops to the target hook, so that it gets a chance to, well, adjust stuff. I don't think clobber "none" should disable target adjustments; IMHO, it should be recognized by target adjustments, and cause them to not add stuff they normally would. > The user could want to use an empty asm to influence what code is > generated. Yes, I know this isn't a very strong argument :-) Well, it is to me, it's exactly what I'm doing here, you know? :-) But it's not the kind of "things going wrong" that I was looking for. > just set a flag and not call md_asm_adjust? I don't like that. When we move some asm processing between target-specific and generic, in either direction, suddenly "none" affects whether or not the processing gets done. I don't like that. > Maybe "nodefault" is a > better name than "none" btw For that, I agree, but I don't think that's a good feature to have. I'd rather have "none" and keep the ability to introduce target-specific adjustments à-la "=@cc*". There's no good reason IMHO to have that hook disabled by "none" or by "nodefault". > (must be close to getting it done, if we are picking colours for the > bikeshed :-) ) :-D > Kill all clobbers immediately after calling md_asm_adjust? Why? We don't want to discard any clobbers mentioned by the user, and we (well, I :-) even want to give the target hook a chance to adjust/remove any of those clobbers. That requires the target hook to be aware of the presence of "none", which is fine with me. -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer