tree b7f24c6e9b711ba6828e7cc7c18194a3be61bbef
parent 663d050a98415370ab112396e53852cd5e62ebef
author Jaebaek Seo <jaebaek@google.com> 1602857921 -0400
committer GitHub <noreply@github.com> 1602857921 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfiavBCRBK7hj4Ov3rIwAAdHIIAGX9rxTJG2J1keaaWBlQttHL
 UAPHvDL0uiGvS+tyL20NlwTWIeDkuedcnnZMirBt82otZ/J77ZeMfGozIZheWEUe
 1ngZl/uo5eiasO8zT3VQUqBisZuv3DSYef0riz7+0jKc3HMsPrHO90JF8GJeFn0X
 5N4MEFrOnq9YQRVprV5XlxT2DQTsIWvsOIHqc9w9X0Huqxdkc/Nf2wWFFznFW1Ai
 NiATzQSlLn2ZxyKAEk/UVvFqnAX74YIM/ixbYHD//QEt0duujDtUweeZK1vjc55p
 cWo3qa4WrsPfCAhspwJllk4af/44Fsibxqmp+25Xw0JpyQPgPraiZBsebVAtWR4=
 =nkDK
 -----END PGP SIGNATURE-----
 

Add DebugValue for function param regardless of scope (#3923)

`DebugInfoManager::AddDebugValueIfVarDeclIsVisible()` adds
OpenCL.DebugInfo.100 DebugValue from DebugDeclare only when the
DebugDeclare is visible to the give scope. It helps us correctly
handle a reference variable e.g.,

{ // scope #1.
  int foo = /* init */;
  { // scope #2.
    int& bar = foo;
    ...

in the above code, we must not propagate DebugValue of `int& bar` for
store instructions in the scope #1 because it is alive only in
the scope #2.

We have an exception: If the given DebugDeclare is used for a function
parameter, `DebugInfoManager::AddDebugValueIfVarDeclIsVisible()` has
to always add DebugValue instruction regardless
of the scope. It is because the initializer (store instruction) for
the function parameter can be out of the function parameter's scope
(the function) in particular when the function was inlined.

Without this change, the function parameter value information always
disappears whenever we run the function inlining pass and
`DebugInfoManager::AddDebugValueIfVarDeclIsVisible()`.