Allow partial loop-unrolling for JIT(optUnrollLoops)#18016
Allow partial loop-unrolling for JIT(optUnrollLoops)#18016ArtBlnd wants to merge 39 commits intodotnet:masterfrom
Conversation
|
Please check there is any source-level issue on it. |
|
Sorry for pushing 2 formatting commits. |
See the jit-format utility in the jitutils repository - https://github.com/dotnet/jitutils/blob/master/doc/formatting.md |
|
@mikedn Thanks. I will try it out right away! :> |
|
This will generate following code for optimized assemblies. |
|
@mikedn current implements walk all trees and extract parent of all it has same because its seems unsafe if its failed to modify into partial unrolled loop. cannot rollback. or is there are way to indirect block to block? without condition. just to execute block to next block. |
|
I ill try it after go home. its school here. :> anyways thanks. |
|
I think thats bug of fgWalkTree. I don't understand why assert triggered on follow code. Lines 9779 to 9784 in 016a06d All I used on fgWalkTree is this. is something wrong with it? |
|
Same reason here. Something is wrong with fgWalkTree, I think something isn't handled. |
|
@mikedn can I ask that how can I run test with debugging? Thanks :> |
It looks to me that you're calling it with a
Test executables can be run using corerun.exe. You'll probably need to set the environment variable CORE_LIBRARIES to the directory containing the test runtime (something like D:\Projects\coreclr\bin\tests\Windows_NT.x64.Checked\Tests\Core_Root). Once you get it running you can debug it like any other native program. Note that corerun has a If you're using Visual Studio you can configure it to start corerun with the appropriate parameters and environment variables in the Debugging property page of a project. |
|
I don't understand whats happening on formatting.... that new format is ACTUALLY same. [ADDED] That empty space after comment made that check failed.... LOL. |
|
Ready for review. |
|
This code needs review. Is no one reviewing this? |
|
Ping :> Its fine that notice why can't I get reviewed. |
|
@ArtBlnd sorry for not responding sooner. I skimmed over the code and it looks like you've done some promising work here. I have a few things I'd like to see happen before we do a deeper review. First, reorganize your changes so that the first commit takes care of all of the restructuring of the original code -- things like renaming existing variables and factoring out the full unroll into its own method. For new methods make sure to introduce the header comments that we now recommend for jit code. See the jit coding conventions guidefor more information. Second, create a second commit that then adds in your new logic. Please add comments here as well to match the coding conventions. I think it is fine to squash down most of what you have that is new (and not refactoring) into just this one commit for now. Third, become familiar with how to run jit diffs (there are useful tools over in the jitutils repo and report back on how many methods in framework and test code are impacted by your changes, and the overall size impact. Let me know if you need more guidance on how to do this part. Fourth (in reaction to diffs):
|
That was needed because it was using
Thanks. I will take care of it.
I will add it ASAP. And. yes thanks everyone to help me out. |
|
Is it possible to check IR dump with tests? |
|
I think I have to close this PR and reopen when its fixed without any bugs. |
|
Reworking on last branch. thanks :> |
https://github.com/dotnet/coreclr/issues/11606
following methods will be fixed.