Hi Chris, On 18 August 2017 at 17:18, Christopher Li <sparse@xxxxxxxxxxx> wrote: > On Thu, Aug 17, 2017 at 3:28 PM, Dibyendu Majumdar > <mobile@xxxxxxxxxxxxxxx> wrote: >> >> I will check at my end and revert with my thoughts. >> >> But I would have preferred if the SSA change was like for like >> initially - rather than introducing new breaking changes. That should >> ideally come as patches later on. > > I just realized another side effect of doing the SSA conversion on > the AST directly. It means we will not have access to the linearization > byte code before promoting the memory variable to pseudo. > > If you are depending on that pre-simplified byte code, then you don't > have a choice not do it. Maybe later on we can consider an option to > avoid doing the SSA conversion on memory variable as an option. > I have it setup so that if optimization is switched off I skip the CSE / Flow Simplification steps. In the older version the simplify_symbol_usage() was also being skipped but that is not used now. (Although the way I have merged this - I have the old code still there, and I can switch between the two implementations using a #define). As all my LLVM tests pass in this setup this is fine right now. I still get failures in some cases when the other subsequent stages are enabled - so there must be some incorrect simplifications occurring somewhere. I do not yet have specific tests to track down where the issues are. As I mentioned before - ideally it would be good have a SSA step that is reusable. Then you could run this step several times during the process - and allow some simplification phases to generate non SSA code. Perhaps the new SSA approach can be adapted for this. This would also allow access to the first pass linearized output without promotion to pseudos. But this should not stop us from moving forward with this change - as I think the SSA hooks into the linearization step are pretty specific and it should be relatively easy to have a mode where those steps are "dummied" - i.e. do nothing. I have a question though. For my other backend I need liveness analysis done even if I skip the other steps. Is it okay to run the liveness analysis phase while skipping the CSE / Flow simplification phases? Regards Dibyendu -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html