User Details
- User Since
- Apr 5 2018, 5:18 PM (145 w, 4 d)
Today
Code complexity
Yesterday
Addressed review comments
Sat, Jan 16
Simplify code.
define i32 @src(i32 %A, i32 %B) {
%0:%i = xor i32 %A, 4294967295 %i2 = and i32 %i, %B %i3 = or i32 %B, %A %i4 = xor i32 %i3, 4294967295 %i5 = or i32 %i2, %i4 ret i32 %i5}
>
define i32 @tgt(i32 %A, i32 %B) {
%0:%i = xor i32 %A, 4294967295 ret i32 %i}
Transformation seems to be correct!
Rebase?
Fri, Jan 15
Addressed review comments
Addressed review comments.
Any comments from @jdoerfert / @nikic ?
Thu, Jan 14
Compile time regression is too big..
Looks ok.
Wed, Jan 13
Tue, Jan 12
Re-ping
Simplified implementation.
Is this something what you propose, @nikic ?
Seems ok to land?
Sun, Jan 10
A larger than expected codesize and runtime regression of Bullet benchmark (2.3%) for LTO. Maybe worth to analyse?
Just note: gcc enables -ffinite-loops with opt level -O2 and higher.
Thu, Jan 7
Introduce new extra bool argument to handle issue mentioned by @nikic
define void @test9_gep_mismatch(i1 %X, i8* %Y, i8* %P) { ; CHECK-LABEL: @test9_gep_mismatch( ; CHECK-NEXT: entry: ; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]] ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, i8* [[P:%.*]], i64 0 ; CHECK-NEXT: [[TMP0:%.*]] = call i8* @foo(i8* [[GEP]]) ; CHECK-NEXT: ret void ; entry: br i1 %X, label %if, label %else
Avoid optimization if inner instruction is GEP.
Added test.
For the example, I think this InstCombine transformation will work. noundef isn't necessary.
Restrict to nonnull+noundef.
Handle GEPs.
Wed, Jan 6
int a, b;
Patch title should be adjusted I think
Tue, Jan 5
Mon, Jan 4
Sat, Jan 2
Reping
Thu, Dec 31
Wed, Dec 30
Do you plan to implement gcc’s option in Clang as followup?
Mon, Dec 28
GCC has separate pass for this - loopsplit. It can handle also general case like:
Sun, Dec 27
Great! So something like gcc function spliting/cloning? (It would be good to support noipa, noclone to disable this optimalization)
Fri, Dec 25
Thu, Dec 24
noreturn makes sense here
Wed, Dec 23
Can you reland this patch now?
Tue, Dec 22
Please add a test
Dec 15 2020
Please add tests
Dec 14 2020
Kinda big impact on code size
Dec 12 2020
Suspicious code size regression (npm -03)
Dec 11 2020
Performance data? No regressions for benchmarks?
Dec 10 2020
Status?
Dec 8 2020
Are you gonna land this patch?
Thanks!