Change mutation type of MutableMappingVariable to AttributeMutationNew#159366
Change mutation type of MutableMappingVariable to AttributeMutationNew#159366guilhermeleobas wants to merge 11 commits intogh/guilhermeleobas/215/basefrom
MutableMappingVariable to AttributeMutationNew#159366Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/159366
Note: Links to docs will display an error until the docs builds have been completed. ✅ You can merge normally! (1 Unrelated Failure)As of commit 0e1acc4 with merge base e299926 ( FLAKY - The following job failed but was likely due to flakiness present on trunk:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
| super().__init__(value, **kwargs) | ||
| self.generic_dict_vt = variables.ConstDictVariable({}) | ||
| self.mutation_type = AttributeMutationExisting() | ||
| self.mutation_type = AttributeMutationNew() |
There was a problem hiding this comment.
I don't understand this one, is there an explanation on why it should be AttributeMutationNew vs AttributeMutationExisting ?
There was a problem hiding this comment.
From the source code:
class AttributeMutationExisting(AttributeMutation):
"""
This case of VariableTracker.mutation_type marker indicates
1. ...
2. The value exists before Dynamo tracing started.
"""
...
class AttributeMutationNew(AttributeMutation):
"""
This case of VariableTracker.mutation_type marker indicates
1. ...
2. The value is created by the bytecode Dynamo is tracing through.
"""
...The value has no source and cannot be AttributeMutationExisting.
There was a problem hiding this comment.
MutableMapping looks like it can have a source? or is this branch dead: https://github.com/pytorch/pytorch/blob/a06ec54d40013c97fbffc174ea8f524ea5a95715/torch/_dynamo/variables/builder.py#L1525C38-L1527
There was a problem hiding this comment.
You're right. So, the mutation type depends on whether MutableMapping has a source or not.
|
Starting merge as part of PR stack under #159483 |
|
Starting merge as part of PR stack under #159368 |
|
Starting merge as part of PR stack under #159483 |
Pull Request resolved: #159368 Approved by: https://github.com/mlazos ghstack dependencies: #159365, #159366
…ts (#159865) Changes: (1) Replace UserDefinedSetVariable by UserDefinedObjectVariable in all binop calls Test plan: (1) The three tests from CPython `test_collections.py` ensures that Dynamo can trace through a dunder method (e.g. __add__, __ixor__, etc) defined in a user defined class Pull Request resolved: #159865 Approved by: https://github.com/mlazos ghstack dependencies: #159365, #159366, #159368, #159483, #159902, #159864
…nNew` (pytorch#159366) Also add MutableMappingVariable to `call_or_` / `call_ior` Pull Request resolved: pytorch#159366 Approved by: https://github.com/zou3519 ghstack dependencies: pytorch#159365
Pull Request resolved: pytorch#159368 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366
Pull Request resolved: pytorch#159483 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368
pytorch#159902) Pull Request resolved: pytorch#159902 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368, pytorch#159483
…ytorch#159864) Pull Request resolved: pytorch#159864 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368, pytorch#159483, pytorch#159902
…ts (pytorch#159865) Changes: (1) Replace UserDefinedSetVariable by UserDefinedObjectVariable in all binop calls Test plan: (1) The three tests from CPython `test_collections.py` ensures that Dynamo can trace through a dunder method (e.g. __add__, __ixor__, etc) defined in a user defined class Pull Request resolved: pytorch#159865 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368, pytorch#159483, pytorch#159902, pytorch#159864
Pull Request resolved: pytorch#159367 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368, pytorch#159483, pytorch#159902, pytorch#159864, pytorch#159865
…nNew` (pytorch#159366) Also add MutableMappingVariable to `call_or_` / `call_ior` Pull Request resolved: pytorch#159366 Approved by: https://github.com/zou3519 ghstack dependencies: pytorch#159365
Pull Request resolved: pytorch#159368 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366
Pull Request resolved: pytorch#159483 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368
pytorch#159902) Pull Request resolved: pytorch#159902 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368, pytorch#159483
…ytorch#159864) Pull Request resolved: pytorch#159864 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368, pytorch#159483, pytorch#159902
…ts (pytorch#159865) Changes: (1) Replace UserDefinedSetVariable by UserDefinedObjectVariable in all binop calls Test plan: (1) The three tests from CPython `test_collections.py` ensures that Dynamo can trace through a dunder method (e.g. __add__, __ixor__, etc) defined in a user defined class Pull Request resolved: pytorch#159865 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368, pytorch#159483, pytorch#159902, pytorch#159864
Pull Request resolved: pytorch#159367 Approved by: https://github.com/mlazos ghstack dependencies: pytorch#159365, pytorch#159366, pytorch#159368, pytorch#159483, pytorch#159902, pytorch#159864, pytorch#159865
Stack from ghstack (oldest at bottom):
list(UserDefinedObject)viaforce_unpack_var_sequence#159864collections.NamedTuple#159367set_fullgraph(False)intest_collections#159902next(iterator, default)#159483collections.Counter#159368MutableMappingVariabletoAttributeMutationNew#159366Also add MutableMappingVariable to
call_or_/call_iorcc @voznesenskym @penguinwu @EikanWang @jgong5 @Guobing-Chen @XiaobingSuper @zhuhaozhe @blzheng @wenzhe-nrv @jiayisunx @chenyang78 @kadeng @chauhang @amjames @Lucaskabela