On Thu, 25 Feb 2021 12:20:53 -0800 Richard Henderson <richard.hender...@linaro.org> wrote: > This is odd, as is the description of why. Yes, if RdV is read > without initialization, TCG middle-end will abort (at least with > --enable-debug-tcg enabling the assertions). But you've just said > that "no reading" was found.
When we say that no reading was found, we mean that it was not initialized by the caller. The term "reading" is a leftover from how the parser input was organized in the first iterations of the base patchset. I'll rephrase that. > So why did you perform this dummy initialization, which will be > eliminated later? The initialization is redundant in this specific example, but, in general, non-initialized values are assumed to be zero-initialized. For instance when you're writing a 64-bit integer piecewise, by OR-ing two 32-bit integers, it matters. In short: useless in this case (but DCE'd by the mid-end), important in general. > So, I take it from this that you're emitting tcg directly from within > the parser, and not generating any kind of abstract syntax tree? Yes. There a few spots where an AST would have been beneficial, but overall we deem it would increase the complexity of the parser with limited return. -- Alessandro Di Federico rev.ng