Tags: xm999n/redex
Tags
bug fix Reviewed By: ssj933 Differential Revision: D72121879 fbshipit-source-id: 05506372e6e622bfd2c9f7ce8074edfba1e86016
Promote redex-staging to redex-stable, Redex "G" release Summary: allow-large-files Sync redex-stable with the contents of redex-staging at revision 97bdf48dc1bc. Reviewed By: ssj933 Differential Revision: D65169513 fbshipit-source-id: afe02fbb4fa407f7b4d1459c41728be60fdb242d
F Release Promote redex-staging to redex-stable 2nd land Summary: We are moving forward with the F release based on the AB test [results](https://fb.workplace.com/groups/RedexTeam/posts/1644837602730337/). Re-land of D61694226 allow-large-files Reviewed By: ssj933 Differential Revision: D61984453 fbshipit-source-id: 530dd5bf7f5b6d06c91da09edf23b6a35011dbb1
Promote redex-staging to redex-stable Summary: allow-large-files Sync redex-stable with the contents of redex-staging at revision c8cf9a9b17fd. Reviewed By: wsanville Differential Revision: D58202085 fbshipit-source-id: 2964636a6f1ebf393df7a38ca46cddabcd14e1e0
regalloc: Always rebuild CFG after inserting instructions
Summary:
The lack of rebuilding caused a bug in the code that inserted loads for param
register in their immediate dominators. Roughly, we started with this code:
B0:
load-param v16
load-param v17
load-param v18
load-param v19
if-eqz v16 :foo
B1:
if-eqz v17 :bar
In the first iteration of the regalloc loop, we inserted a load for v18 in B1.
Without rebuilding the CFG, we end up with:
B0:
load-param v16
load-param v17
load-param v18
load-param v19
if-eqz v16 :foo
move v0 v18
B1:
if-eqz v17 :bar
Now in the second iteration of the regalloc loop, we wanted to insert a load
for v19 in B0. We looked to see if the last instruction was a branch opcode --
that would necessitate inserting the move instruction before the branch -- but
since the last opcode in B0 is now a move, we inserted our load in the wrong
place.
I'm not sure why the ART verifier doesn't choke on this, but I'm glad arnaudvenet's
IRTypeChecker did...
Reviewed By: kgsharma
Differential Revision: D6194764
fbshipit-source-id: f7945af4771a82afc6c65f9839b84d34dfc18f15
Produce a single-file self-extracting script for OSS Summary: For the benefit of Buck, homebrew, and all the users who have no idea what redex-all is, we'll now build redex as a magic self-extracting script. The script contains a bash extraction preamble followed by a tar file containing redex-all and the python wrapper (and libraries). When `redex` is invoked it untars this payload to a temp location, executes redex with the specified parameters, and then deletes the untarred payload. Differential Revision: D4401602 fbshipit-source-id: 94fa04d7a966be55ab86720c4d426ea566b562bb
Update stringly-typed method refs to account for colon Summary: We added a colon to the method descriptor string used by ProguardMap and the canonical-name form of DexMethod::get_method. This is why using strings to represent complex data is bad. This was causing remove-unreachable to go haywire, since it's driven by seeds information, which is in turn parsed using these assumptions. Reviewed By: satnam6502 Differential Revision: D4000864 fbshipit-source-id: 561b67794f518d534cce16dab6ee9580bfb44ff6