-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lambda inlining optimization #353
base: master
Are you sure you want to change the base?
Lambda inlining optimization #353
Commits on Aug 3, 2023
-
Co-authored-by: Maarten Steevens <maarten.steevens@gmail.com> Co-authored-by: Timothy Geerkens <timothy.geerkens@guardsquare.com>
Configuration menu - View commit details
-
Copy full SHA for 274fd19 - Browse repository at this point
Copy the full SHA 274fd19View commit details
Commits on Aug 4, 2023
-
Fixes from inlining lambdas in the klox compiler
We ran the inliner on a real world application and found a lot of issues, this commit aims to resolve those.
Configuration menu - View commit details
-
Copy full SHA for 043be3a - Browse repository at this point
Copy the full SHA 043be3aView commit details -
Configuration menu - View commit details
-
Copy full SHA for c098ad8 - Browse repository at this point
Copy the full SHA c098ad8View commit details
Commits on Aug 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7922f11 - Browse repository at this point
Copy the full SHA 7922f11View commit details -
Configuration menu - View commit details
-
Copy full SHA for bb66672 - Browse repository at this point
Copy the full SHA bb66672View commit details -
Configuration menu - View commit details
-
Copy full SHA for 573995e - Browse repository at this point
Copy the full SHA 573995eView commit details -
Removed import .* in LambdaLocator
Made LambdaUsageHandler a class Put loadJar inside testUtil.kt and removed LambdaLocator.Util Added comments in CastRemover
Configuration menu - View commit details
-
Copy full SHA for e4ce1e0 - Browse repository at this point
Copy the full SHA e4ce1e0View commit details -
Simplified the RecursiveInliner a bit
We can do some of these changes because we don't modify the code in this version
Configuration menu - View commit details
-
Copy full SHA for 70e5966 - Browse repository at this point
Copy the full SHA 70e5966View commit details -
Configuration menu - View commit details
-
Copy full SHA for aabc5bd - Browse repository at this point
Copy the full SHA aabc5bdView commit details -
Configuration menu - View commit details
-
Copy full SHA for f4a22fa - Browse repository at this point
Copy the full SHA f4a22faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7b2146e - Browse repository at this point
Copy the full SHA 7b2146eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3573c19 - Browse repository at this point
Copy the full SHA 3573c19View commit details -
Configuration menu - View commit details
-
Copy full SHA for 025571c - Browse repository at this point
Copy the full SHA 025571cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 845d044 - Browse repository at this point
Copy the full SHA 845d044View commit details -
Removed visitor staircase in LambdaLocator
Refactored LambdaImplementationVisitor visitProgramMethod
Configuration menu - View commit details
-
Copy full SHA for 13b38d5 - Browse repository at this point
Copy the full SHA 13b38d5View commit details -
Cleaned commented code in NullCheckRemover Removed unused class Removed staircase in LocalUsageRemover
Configuration menu - View commit details
-
Copy full SHA for fb9fe7d - Browse repository at this point
Copy the full SHA fb9fe7dView commit details -
Cleaned up the while loop in the LambdaUsageFinder by using the new I…
…terativeInstructionVisitor class
Configuration menu - View commit details
-
Copy full SHA for cf74760 - Browse repository at this point
Copy the full SHA cf74760View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2090514 - Browse repository at this point
Copy the full SHA 2090514View commit details -
Merge pull request #1 from MaartenS11/klox-fixes
Fixes from inlining lambdas in the klox compiler
Configuration menu - View commit details
-
Copy full SHA for fb5eedb - Browse repository at this point
Copy the full SHA fb5eedbView commit details -
Removed unused class and method
added a logger in lambda locator
Configuration menu - View commit details
-
Copy full SHA for 6ae5fc3 - Browse repository at this point
Copy the full SHA 6ae5fc3View commit details -
Configuration menu - View commit details
-
Copy full SHA for e90c5c9 - Browse repository at this point
Copy the full SHA e90c5c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 33aa83d - Browse repository at this point
Copy the full SHA 33aa83dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1d49b49 - Browse repository at this point
Copy the full SHA 1d49b49View commit details -
Configuration menu - View commit details
-
Copy full SHA for cb60c13 - Browse repository at this point
Copy the full SHA cb60c13View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3d3bf8f - Browse repository at this point
Copy the full SHA 3d3bf8fView commit details
Commits on Aug 8, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 8c354ab - Browse repository at this point
Copy the full SHA 8c354abView commit details -
Use argument index from LambdaUsageFinder instead of searching in the…
… descriptor This is better because it fixes the case where a lambda is attempted to be inlined into a method that takes object as argument which is then later casted back into a lambda.
Configuration menu - View commit details
-
Copy full SHA for 813be34 - Browse repository at this point
Copy the full SHA 813be34View commit details -
Configuration menu - View commit details
-
Copy full SHA for f155107 - Browse repository at this point
Copy the full SHA f155107View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d82d2d - Browse repository at this point
Copy the full SHA 7d82d2dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 047719c - Browse repository at this point
Copy the full SHA 047719cView commit details -
Merge branch 'lambda-inlining' of github.com:MaartenS11/proguard into…
… recursive-inliner-adjustments
Configuration menu - View commit details
-
Copy full SHA for 5cc6748 - Browse repository at this point
Copy the full SHA 5cc6748View commit details -
Merge pull request #2 from MaartenS11/recursive-inliner-adjustments
Recursive inliner adjustments + comments
Configuration menu - View commit details
-
Copy full SHA for 1f5c85b - Browse repository at this point
Copy the full SHA 1f5c85bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 54233a5 - Browse repository at this point
Copy the full SHA 54233a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for ef37241 - Browse repository at this point
Copy the full SHA ef37241View commit details -
Configuration menu - View commit details
-
Copy full SHA for beeadd5 - Browse repository at this point
Copy the full SHA beeadd5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 343df22 - Browse repository at this point
Copy the full SHA 343df22View commit details -
Configuration menu - View commit details
-
Copy full SHA for 71213fe - Browse repository at this point
Copy the full SHA 71213feView commit details -
Configuration menu - View commit details
-
Copy full SHA for 42493c6 - Browse repository at this point
Copy the full SHA 42493c6View commit details -
Merge pull request #3 from MaartenS11/more-fixes
Fixed the cast remover so it works in all cases
Configuration menu - View commit details
-
Copy full SHA for 8cfd505 - Browse repository at this point
Copy the full SHA 8cfd505View commit details
Commits on Aug 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for cff6565 - Browse repository at this point
Copy the full SHA cff6565View commit details -
Added logging when a lambda has been inlined and only print method le…
…ngth when decided to not inline the lambda
Configuration menu - View commit details
-
Copy full SHA for 5644a9d - Browse repository at this point
Copy the full SHA 5644a9dView commit details -
Log the consuming method and invoke method so the use knows which met…
…hod is not inlined when it is too long
Configuration menu - View commit details
-
Copy full SHA for 48c52e5 - Browse repository at this point
Copy the full SHA 48c52e5View commit details -
Merge pull request #4 from MaartenS11/inline-conditionally
Conditionally inline lambdas
Configuration menu - View commit details
-
Copy full SHA for badf492 - Browse repository at this point
Copy the full SHA badf492View commit details -
Co-authored-by: rubenpieters <rubenpieters@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 61e1e98 - Browse repository at this point
Copy the full SHA 61e1e98View commit details -
Configuration menu - View commit details
-
Copy full SHA for 00664b2 - Browse repository at this point
Copy the full SHA 00664b2View commit details -
Co-authored-by: rubenpieters <rubenpieters@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for fca2cde - Browse repository at this point
Copy the full SHA fca2cdeView commit details -
Configuration menu - View commit details
-
Copy full SHA for f8f1155 - Browse repository at this point
Copy the full SHA f8f1155View commit details -
Merge branch 'lambda-inlining' of github.com:MaartenS11/proguard into…
… lambda-inlining
Configuration menu - View commit details
-
Copy full SHA for bcab91e - Browse repository at this point
Copy the full SHA bcab91eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2710ff3 - Browse repository at this point
Copy the full SHA 2710ff3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 49bd302 - Browse repository at this point
Copy the full SHA 49bd302View commit details -
Use result of lambdaUsageHandler.handle() directly instead of storing…
… and then reading it again from the iterativeInstructionVisitor
Configuration menu - View commit details
-
Copy full SHA for 55b4f0e - Browse repository at this point
Copy the full SHA 55b4f0eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7613999 - Browse repository at this point
Copy the full SHA 7613999View commit details -
Configuration menu - View commit details
-
Copy full SHA for ee3e3ab - Browse repository at this point
Copy the full SHA ee3e3abView commit details -
Configuration menu - View commit details
-
Copy full SHA for f1ba773 - Browse repository at this point
Copy the full SHA f1ba773View commit details -
Renamed isSourceInstruction to isNotSourceInstruction
Resolved infinite loop when tracing source instruction of unreachable code
Configuration menu - View commit details
-
Copy full SHA for 7d602c9 - Browse repository at this point
Copy the full SHA 7d602c9View commit details -
Merge branch 'lambda-inlining' of github.com:MaartenS11/proguard into…
… lambda-inlining
Configuration menu - View commit details
-
Copy full SHA for 4d18370 - Browse repository at this point
Copy the full SHA 4d18370View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2648338 - Browse repository at this point
Copy the full SHA 2648338View commit details -
Apply suggestions from code review
Co-authored-by: rubenpieters <rubenpieters@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for b431cb7 - Browse repository at this point
Copy the full SHA b431cb7View commit details -
Use Optional in MethodLengthFinder so the programmer is made aware th…
…at some methods don't have a length
Configuration menu - View commit details
-
Copy full SHA for 11f21f1 - Browse repository at this point
Copy the full SHA 11f21f1View commit details -
Merge branch 'lambda-inlining' of github.com:MaartenS11/proguard into…
… lambda-inlining
Configuration menu - View commit details
-
Copy full SHA for 028e8c4 - Browse repository at this point
Copy the full SHA 028e8c4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0cc53cd - Browse repository at this point
Copy the full SHA 0cc53cdView commit details -
Configuration menu - View commit details
-
Copy full SHA for a440b45 - Browse repository at this point
Copy the full SHA a440b45View commit details -
Renamed constantInstruction and offset to be more precise also added …
…javadoc to Lambda class to explain what each argument/field represents
Configuration menu - View commit details
-
Copy full SHA for 7e652b3 - Browse repository at this point
Copy the full SHA 7e652b3View commit details
Commits on Aug 10, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 607bf86 - Browse repository at this point
Copy the full SHA 607bf86View commit details -
Configuration menu - View commit details
-
Copy full SHA for f69fd14 - Browse repository at this point
Copy the full SHA f69fd14View commit details -
invokespecial is now considered a potential source for the sourcetracer
+ added debug messages
Configuration menu - View commit details
-
Copy full SHA for 95b23ab - Browse repository at this point
Copy the full SHA 95b23abView commit details -
Configuration menu - View commit details
-
Copy full SHA for c5bca4a - Browse repository at this point
Copy the full SHA c5bca4aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 23d4efe - Browse repository at this point
Copy the full SHA 23d4efeView commit details -
Merge branch 'lambda-inlining' of github.com:MaartenS11/proguard into…
… lambda-inlining
Configuration menu - View commit details
-
Copy full SHA for 7cdac26 - Browse repository at this point
Copy the full SHA 7cdac26View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03ae5c6 - Browse repository at this point
Copy the full SHA 03ae5c6View commit details -
Add large javadoc comment explaining all the steps taken when using t…
…he BaseLambdaInliner.inline() method
Configuration menu - View commit details
-
Copy full SHA for ad8b5ff - Browse repository at this point
Copy the full SHA ad8b5ffView commit details -
Configuration menu - View commit details
-
Copy full SHA for 26d9850 - Browse repository at this point
Copy the full SHA 26d9850View commit details -
Move a lot of code from the BaseLambdaInliner into a private inner cl…
…ass because the visitors are not part of the API of the BaseLambdaInliner
Configuration menu - View commit details
-
Copy full SHA for a5ebb5e - Browse repository at this point
Copy the full SHA a5ebb5eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 71b63a4 - Browse repository at this point
Copy the full SHA 71b63a4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7da8e01 - Browse repository at this point
Copy the full SHA 7da8e01View commit details -
Add -inlinekotlinlambdas command line option to enable and disable la…
…mbda inlining without recompiling
Configuration menu - View commit details
-
Copy full SHA for 751cc74 - Browse repository at this point
Copy the full SHA 751cc74View commit details -
Moved lambda inlining optimization from inline to lambdainline packag…
…e so it matches the package name used in the tests and it also is just more informative, the MethodInliner for example was not in there
Configuration menu - View commit details
-
Copy full SHA for f4f84e4 - Browse repository at this point
Copy the full SHA f4f84e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d080b2 - Browse repository at this point
Copy the full SHA 9d080b2View commit details
Commits on Aug 11, 2023
-
Configuration menu - View commit details
-
Copy full SHA for b8fbcd0 - Browse repository at this point
Copy the full SHA b8fbcd0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3a866fc - Browse repository at this point
Copy the full SHA 3a866fcView commit details -
Added WIP README file to the lambdainline package
(Location can maybe be changed not sure exactly where we should put it, putting it in the official documentation seems incorrect this is not really something a proguard user should know it's more of a developer oriented piece of documentation.)
Configuration menu - View commit details
-
Copy full SHA for a910309 - Browse repository at this point
Copy the full SHA a910309View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0cf13a7 - Browse repository at this point
Copy the full SHA 0cf13a7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1ba33ba - Browse repository at this point
Copy the full SHA 1ba33baView commit details
Commits on Aug 12, 2023
-
Be more specific when using the ClassReferenceInitializer, not all re…
…ferences have to be updated, just the classes involved in the inlining process This should improve performance a bit.
Configuration menu - View commit details
-
Copy full SHA for ceea1b6 - Browse repository at this point
Copy the full SHA ceea1b6View commit details -
Only re-run the ClassReferenceInitializer on the consuming class
This should also improve performance a bit.
Configuration menu - View commit details
-
Copy full SHA for 93d3bb6 - Browse repository at this point
Copy the full SHA 93d3bb6View commit details -
Only run AccessFixer on consumingClass instead of the entire programC…
…lassPool This should again improve performance of the pass a bit.
Configuration menu - View commit details
-
Copy full SHA for ac7f42d - Browse repository at this point
Copy the full SHA ac7f42dView commit details
Commits on Aug 13, 2023
-
Adjust conditional inlining attempt condition to use sum of consuming…
… method and lambda length
Configuration menu - View commit details
-
Copy full SHA for 370704b - Browse repository at this point
Copy the full SHA 370704bView commit details