tree fec58f4b2e48cb0c692642b9f1afc48b84da758f
parent 948577c5df3a6f0d337ab417b26edcc344eb65e2
author alan-baker <alanbaker@google.com> 1597344854 -0400
committer GitHub <noreply@github.com> 1597344854 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfNYxWCRBK7hj4Ov3rIwAAdHIIAK4bPAMjGlPFhARcsyZEcVCB
 Z2ImC/98TC/iq0fUqb/YhiENAvPz433yqKW2M5orkqBXXPnqJ2mf2tJdofotBasw
 QwuE1uPDX6iO+EOI1UjnLTPZNYnhGcj4iM7V54f3ge9CAmIlsdMgu62uY8SIKhPA
 Ok7KqVUZeAM1oWwlwzJHAZf0kLeUPORDwCweouOGjqltLZuNtF0MJVwRokFbarpx
 EP+FrxyKgubocqEEua9ShYKj+U6ynONJwhZbQ4ryPYX+1UHp0unyNIYRaMi/PnAC
 QfPLIEx9yZvYg2pS+5ZxileZL2IlJB3pWoQCvx69tjFzrV9qpIse3QZZ44pcqwM=
 =h4rn
 -----END PGP SIGNATURE-----
 

Improve non-semantic instruction handling in the optimizer (#3693)

* No longer blindly add global non-semantic info instructions to global
  types and values
  * functions now have a list of non-semantic instructions that succeed
    them in the global scope
  * global non-semantic instructions go in global types and values if
    they appear before any function, otherwise they are attached to the
    immediate function predecessor in the module
* changed ADCE to use the function removal utility
* Modified EliminateFunction to have special handling for non-semantic
  instructions in the global scope
  * non-semantic instructions are moved to an earlier function (or full
    global set) if the function they are attached to is eliminated
  * Added IRContext::KillNonSemanticInfo to remove the tree of
    non-semantic instructions that use an instruction
  * this is used in function elimination
* There is still significant work in the optimizer to handle
  non-semantic instructions fully in the optimizer
