- User Since
- Mar 11 2020, 1:14 AM (158 w, 6 d)
Sep 2 2020
Sep 1 2020
Aug 29 2020
delete unnecessary brackets
- fix dependence
- fix formatting
Reflect change in D86835
Aug 27 2020
Delete AAIsDead query before manifestation because other patches (D86635, D86734) make it possible to query new AAs in manifest.
This is accepted, I'll go with this.
Another way to achieve the same goal is to remove the assertion in manifestAttributes.
I'm not sure which is better.
- delete debug print
- add a comment
- make use of the phase flag
- use scoped enum
- move status change into Attributor::run
- fix initialization at callsite argument position (value-simplify.ll is affected)
- add tests
Aug 26 2020
Thank you for the suggestion. I'm thinking about the same approach. I totally agree with @kuter. It is slightly hard for us to guarantee Attributor not to update AAs during manifestation by adding a new API.
Adding a flag that indicates which stage of the process (e.g. the update stage or the manifestation stage) we are in is better, I think.
@jdoerfert How do you think about this?
Some AAs use checkForAll... in manifest, and getAAFor is used in the function.
I think we need to add a new parameter like bool DuringManifest to them in a follow-up.
- rename getter getAADuringManifestFor
- replace some existing getAAFor in manifest with this
I investigated the problem seen in the module slice patch again. And I realize now that checking liveness in manifestation is sufficient to settle the problem.
I misunderstood we need more things to do so. I was overthinking, sorry.
This was split into some patches.
Aug 25 2020
- fix nit
I have difficulty in doing that because segfault happens when a fixpoint is indicated in initialize and updateImpl is not called even once.
- change CheckBBLivenessOnly to true
- add affected tests
- add new tests
When I fix the identification of AANoUndef in identifyDefaultAbstractAttributes, I noticed that noundef should not be deduced for dead argument and dead call site argument position too. (I found wrong transformation in e.g. callbacks.ll)
Not to deduce for dead positions, we should not indicate optimistic fixpoint in initialize because once fixpoint is indicated we cannot change the state. However, it weakens the deduction significantly.
So I want to suggest that we check not only noundef but also liveness in AAUndefinedBehavior.
Aug 24 2020
I'm not sure we have to take care of intersection. Currently, there is PotentialValueState::intersectWith but is not used anywhere. I am not able to come up with a case we need it, and I think it should be deleted.
- fix according to interface change
- change whole interface
Aug 22 2020
Aug 21 2020
- delete unnecessary format change
- change to check IR position
Aug 20 2020
Aug 19 2020
I think the logic is correct too and we need comments for this.
IMHO, putting the conditional into helper function would improve readability.