Week 2

This past days I focused on some missing Debug Loc that occurred at store instructions at the function prologue.

Preserving the scope

Instructions on the function prologue are auto-generated and do not correspond the "real" code. Thus the Debug Location can't have a valid line number.

But the Debug Location metadata contains scope information as well, witch is useful. Especially after the passes mix and mash the code to form the optimized module.

Background

While investigating the SROA pass for missing DI occurrences, there was a test with a phi induction that was missing Debug Loc. The problem was then narrowed down to a mem2reg call from SROA. As it turned out the mem2reg was correctly sourcing the phi debug location from the combined stores, so the problem had to be that there was to DI present at all.

Proposed Solution

Hence this patch was posted in phab.

There is some talk about whether this change is wanted or not, since the DI in the instructions of the function prologue is intended to be missing.

Although test1 clearly shows a phi with missing debug Loc that after the patch is applied no longer has this problem.