DescriptionCombine allocas
Partition allocas that occur in the entry block into two categories. The first is those whose size is fixed and alignment are less than or equal to the stack alignment. These are emitted relative to a pointer, either in increasing offset relative to the stack pointer or decreasing offset relative to the frame pointer. (Actually, we are not enabling this optimization for frame pointer frames yet) The second category is allocas whose size is dynamic or alignment is creater than the stack alignment. These are emitted relative to a user variable in increasing offset order. This optimization is only enabled for x86 at O2.
BUG=
R=stichnot@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=4318a410939b5cee89736f6f15a3185e385b5dc7
Patch Set 1 #Patch Set 2 : Move frame pointer alloca to the top of the returned region #Patch Set 3 : Add a test #Patch Set 4 : Increment correct partitioning. #Patch Set 5 : Add rematerialization #Patch Set 6 : Update tests to use rematerialization #Patch Set 7 : Fake definitions and uses for stack pointer relative accesses #Patch Set 8 : Add test that leas get offset from outgoing args #Patch Set 9 : Factored to only be enabled for x86 at O2. #Patch Set 10 : Cleanups, removed ARM vestiges. #Patch Set 11 : Fix a typo. #
Total comments: 40
Patch Set 12 : Code review fixes #Patch Set 13 : Merge fast alloca pass into processAllocas #Patch Set 14 : Finish fast path. #
Messages
Total messages: 8 (2 generated)
|