Profile ivalue multiple (#1677)
Fixes profiling asserts on seeing multiple inconsistent profile ivalues.
Instead of asserting, we now just wipe out profile_ivalues and putting a debug attribute in the profile node profile_node->s_(Symbol::attr("profile_failed"), "varying profile values");. So during fusion pass, we'll just not have profiled constant for those values and might miss out some fusion opportunity.
Alternatively, we should just be able to ignore inconsistent ivalues and expect our guard/fallback to work at runtime. But that's too aggressive and we'd like to avoid frequent fallback.
This also fixes the part of failure mentioned pytorch#76791