Prazek (Piotr Padlewski)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 21 2015, 5:19 PM (165 w, 3 d)

Recent Activity

Tue, Sep 11

Prazek accepted D51936: Fix a use-after-RAUW bug in large GEP splitting.

LGTM, but please wait for Javed to review

Tue, Sep 11, 12:25 PM

Fri, Sep 7

Prazek committed rL341725: Set cost of invariant group intrinsics to 0.
Set cost of invariant group intrinsics to 0
Fri, Sep 7, 3:31 PM
Prazek closed D51814: Set cost of invariant group intrinsics to 0.
Fri, Sep 7, 3:31 PM
Prazek created D51814: Set cost of invariant group intrinsics to 0.
Fri, Sep 7, 1:57 PM

Aug 14 2018

Prazek added a comment to D45151: [LICM] Hoisting invariant.group loads.

Can we spec !invariant.group in a way that lets us always keep the metadata when hoisting? Right now it isn't clear what happens if its contract is violated, i.e. what the behavior of this program is:

store i32 0, i32* %ptr, !invariant.group !0
%x = load i32, i32* %ptr, !invariant.group !0
store i32 1, i32* %ptr, !invariant.group !0
%y = load i32, i32* %ptr, !invariant.group !0

though it seems like you're assuming the *load* has UB? Can we instead say that the second store has UB? That way we should be able to hoist the load instruction without dropping the metadata.

Aug 14 2018, 3:40 PM

Aug 13 2018

Prazek added inline comments to D45151: [LICM] Hoisting invariant.group loads.
Aug 13 2018, 4:00 PM

Jul 19 2018

Prazek removed a dependency for D45151: [LICM] Hoisting invariant.group loads: D45150: Less conservative LoopSafetyInfo for headers.
Jul 19 2018, 2:56 PM
Prazek removed a dependent revision for D45150: Less conservative LoopSafetyInfo for headers: D45151: [LICM] Hoisting invariant.group loads.
Jul 19 2018, 2:56 PM

Jul 16 2018

Prazek added a reviewer for D45151: [LICM] Hoisting invariant.group loads: rsmith.
Jul 16 2018, 9:36 PM
Prazek added a comment to D45151: [LICM] Hoisting invariant.group loads.

friendly ping

Jul 16 2018, 9:04 AM

Jul 12 2018

Prazek committed rL336963: Simplify recursive launder.invariant.group and strip.
Simplify recursive launder.invariant.group and strip
Jul 12 2018, 5:00 PM
Prazek closed D47423: Simplify recursive launder.invariant.group and strip.
Jul 12 2018, 5:00 PM

Jul 10 2018

Prazek added inline comments to D47423: Simplify recursive launder.invariant.group and strip.
Jul 10 2018, 5:32 PM
Prazek added inline comments to D47423: Simplify recursive launder.invariant.group and strip.
Jul 10 2018, 10:36 AM

Jul 3 2018

Prazek added inline comments to D47423: Simplify recursive launder.invariant.group and strip.
Jul 3 2018, 10:28 AM

Jul 2 2018

Prazek committed rL336137: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
[CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers
Jul 2 2018, 12:26 PM
Prazek committed rC336137: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
[CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers
Jul 2 2018, 12:26 PM
This revision was not accepted when it landed; it landed in state Needs Review.
Jul 2 2018, 12:26 PM

Jul 1 2018

Prazek added inline comments to D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
Jul 1 2018, 10:35 PM
Prazek updated the diff for D47423: Simplify recursive launder.invariant.group and strip.

fixed addrspace cast

Jul 1 2018, 10:33 PM
Prazek added inline comments to D47423: Simplify recursive launder.invariant.group and strip.
Jul 1 2018, 10:21 PM
Prazek committed rL336073: Implement strip.invariant.group.
Implement strip.invariant.group
Jul 1 2018, 9:55 PM
Prazek closed D47103: Implement strip.invariant.group.
Jul 1 2018, 9:54 PM

Jun 16 2018

Prazek added inline comments to D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
Jun 16 2018, 10:56 AM

Jun 15 2018

Prazek added inline comments to D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
Jun 15 2018, 3:38 PM
Prazek added inline comments to D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
Jun 15 2018, 3:37 PM
Prazek updated the diff for D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.

Refactor

Jun 15 2018, 3:36 PM
Prazek added inline comments to D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
Jun 15 2018, 3:33 PM

Jun 13 2018

Prazek updated the diff for D45151: [LICM] Hoisting invariant.group loads.
  • Fixed comments

@hfinkel is my response resonable?

Jun 13 2018, 7:21 AM
Prazek committed rL334600: Add -fforce-emit-vtables.
Add -fforce-emit-vtables
Jun 13 2018, 7:00 AM
Prazek committed rC334600: Add -fforce-emit-vtables.
Add -fforce-emit-vtables
Jun 13 2018, 7:00 AM
Prazek closed D47108: [CodeGenCXX] Add -fforce-emit-vtables.
Jun 13 2018, 7:00 AM
Prazek edited reviewers for D47103: Implement strip.invariant.group, added: davide; removed: rjmccall.
Jun 13 2018, 6:43 AM
Prazek added a comment to D47103: Implement strip.invariant.group.

Friendly ping @hfinkel @rsmith

Jun 13 2018, 6:43 AM

Jun 11 2018

Prazek updated the diff for D47108: [CodeGenCXX] Add -fforce-emit-vtables.
  • Fixed templates
Jun 11 2018, 6:24 AM
Prazek updated the diff for D47423: Simplify recursive launder.invariant.group and strip.

updated test

Jun 11 2018, 4:21 AM
Prazek updated the diff for D47423: Simplify recursive launder.invariant.group and strip.

unreachable

Jun 11 2018, 4:02 AM

Jun 2 2018

Prazek added a comment to D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.

@rjmccall @rsmith friendly ping

Jun 2 2018, 1:51 PM
Prazek added a comment to D47103: Implement strip.invariant.group.

friendly ping

Jun 2 2018, 1:45 PM
Prazek added a comment to D45151: [LICM] Hoisting invariant.group loads.

s/loop unrolling/loop peeling/
I will had to take a look at this at some time, but from what I've heard the state of loop peeling in LLVM is not very sofisticated, and implementing the logic that I propose might be a little hard.

Jun 2 2018, 8:37 AM
Prazek added a comment to D45151: [LICM] Hoisting invariant.group loads.

You say that you don't yet know if this is profitable yet. Do you have reason to believe that it might not be profitable (e.g., some example where it seems like we might want to constrain the behavior)? We almost never favor keeping metadata over doing other transformations, so I think it's worth being explicit about our reasoning here. Just saying "I don't know yet" is probably not sufficient, as we could say that about nearly all metadata, and in that case, change the default logic.

Jun 2 2018, 8:28 AM

May 29 2018

Prazek added a comment to D47214: [InstCombine] Replace bcmp/bcopy with memcmp/memmove.

And two facts..

  1. LLVM already replaces bzero with memset
  2. There are many source codes related to networking which uses bcopy, bcmp.

    So I dont think this patch is totally useless.

    Maybe @Prazek can do review of this patch for me?
May 29 2018, 6:31 AM

May 28 2018

Prazek added a dependent revision for D47103: Implement strip.invariant.group: D47423: Simplify recursive launder.invariant.group and strip.
May 28 2018, 2:47 PM
Prazek added a dependency for D47423: Simplify recursive launder.invariant.group and strip: D47103: Implement strip.invariant.group.
May 28 2018, 2:47 PM
Prazek updated the diff for D47108: [CodeGenCXX] Add -fforce-emit-vtables.

fixed test

May 28 2018, 2:46 PM

May 27 2018

Prazek updated the diff for D47108: [CodeGenCXX] Add -fforce-emit-vtables.

small update

May 27 2018, 11:39 AM
Prazek updated the diff for D47108: [CodeGenCXX] Add -fforce-emit-vtables.

Fixed missing vtable commponents

May 27 2018, 11:18 AM
Prazek updated the diff for D47423: Simplify recursive launder.invariant.group and strip.

fixed nit

May 27 2018, 9:56 AM
Prazek created D47423: Simplify recursive launder.invariant.group and strip.
May 27 2018, 6:28 AM
Prazek updated the diff for D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.

one more test

May 27 2018, 5:11 AM
Prazek updated the diff for D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
Added launder when going from possiblyNotDynamic to possiblyDynamic
emitting strip for pointer -> int only if poitner is possiblyDynamic
May 27 2018, 5:10 AM
Prazek added a reviewer for D45151: [LICM] Hoisting invariant.group loads: hfinkel.

Can someone with experience in Loop passes take a look at this?

May 27 2018, 4:49 AM

May 25 2018

Prazek added inline comments to D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
May 25 2018, 5:44 PM
Prazek added a comment to D45150: Less conservative LoopSafetyInfo for headers.

OK, so it seems that at least the tests in the second patch passes without this patch, so I am fine with committing it without this one for one (also Philip if you could take a look at that patch I would be grateful)
I am worried about cases, where the first instruction does not throw, but it we can't hoist it (e.g. it depends on the loop phi) and after that, there is an instruction that can be hoisted.

May 25 2018, 4:26 AM

May 23 2018

Prazek added inline comments to D47103: Implement strip.invariant.group.
May 23 2018, 4:17 PM
Prazek updated the diff for D47103: Implement strip.invariant.group.

Slitted commit into defining and using intrinsic

May 23 2018, 4:17 PM
Prazek added a dependent revision for D47103: Implement strip.invariant.group: D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
May 23 2018, 4:13 PM
Prazek added a dependency for D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers: D47103: Implement strip.invariant.group.
May 23 2018, 4:13 PM
Prazek created D47299: [CodeGenCXX] Emit strip.invariant.group with -fstrict-vtable-pointers.
May 23 2018, 4:13 PM
Prazek committed rL333070: Fix aliasing of launder.invariant.group.
Fix aliasing of launder.invariant.group
May 23 2018, 2:20 AM
Prazek closed D47088: Fix aliasing of launder.invariant.group.
May 23 2018, 2:20 AM
Prazek added a comment to D47108: [CodeGenCXX] Add -fforce-emit-vtables.

I thought we already had places in Sema that marked inline virtual methods as used, instantiated templates, etc. for devirtualization purposes when optimization was enabled. Did we rip that out?

I only recall the emitting available_externally vtables opportunistically, that is emitting it only if all the inline virtual functions are present (and they are not hidden).
(https://reviews.llvm.org/D33437)

May 23 2018, 1:16 AM

May 22 2018

Prazek updated the diff for D47088: Fix aliasing of launder.invariant.group.
  • Add more comments
May 22 2018, 5:57 PM
Prazek added a comment to D47108: [CodeGenCXX] Add -fforce-emit-vtables.

@rjmccall do you have any thoughts on the best way to solve it?

May 22 2018, 5:42 AM
Prazek retitled D47108: [CodeGenCXX] Add -fforce-emit-vtables from Add -fforce-emit-vtables to [CodeGenCXX] Add -fforce-emit-vtables.
May 22 2018, 5:42 AM

May 19 2018

Prazek updated the diff for D47103: Implement strip.invariant.group.

rebase

May 19 2018, 5:07 PM
Prazek updated the diff for D47088: Fix aliasing of launder.invariant.group.

fix name

May 19 2018, 5:01 PM
Prazek added a dependent revision for D47088: Fix aliasing of launder.invariant.group: D47103: Implement strip.invariant.group.
May 19 2018, 4:48 PM
Prazek updated the diff for D47103: Implement strip.invariant.group.

After rebasing

May 19 2018, 4:47 PM
Prazek added inline comments to D47088: Fix aliasing of launder.invariant.group.
May 19 2018, 4:34 PM
Prazek updated the diff for D47088: Fix aliasing of launder.invariant.group.
  • small refactor
May 19 2018, 4:33 PM
Prazek added inline comments to D47088: Fix aliasing of launder.invariant.group.
May 19 2018, 4:03 PM
Prazek updated the diff for D47103: Implement strip.invariant.group.

Changed comments

May 19 2018, 3:55 PM
Prazek updated the diff for D47103: Implement strip.invariant.group.

introduced mayBeDynamicClass and added more tests

May 19 2018, 3:11 PM
Prazek retitled D47108: [CodeGenCXX] Add -fforce-emit-vtables from Add -fforce-emit-vtable to Add -fforce-emit-vtables.
May 19 2018, 1:09 PM
Prazek updated the diff for D47108: [CodeGenCXX] Add -fforce-emit-vtables.

Fixed flag passing

May 19 2018, 1:08 PM
Prazek updated the diff for D47108: [CodeGenCXX] Add -fforce-emit-vtables.

Fixed comment

May 19 2018, 12:16 PM
Prazek updated the diff for D47108: [CodeGenCXX] Add -fforce-emit-vtables.

remove empty line

May 19 2018, 12:04 PM
Prazek updated the diff for D47108: [CodeGenCXX] Add -fforce-emit-vtables.

Add release note

May 19 2018, 12:03 PM
Prazek updated subscribers of D47103: Implement strip.invariant.group.
May 19 2018, 11:58 AM
Prazek created D47108: [CodeGenCXX] Add -fforce-emit-vtables.
May 19 2018, 11:58 AM
Prazek updated the diff for D47103: Implement strip.invariant.group.

Reformat

May 19 2018, 8:04 AM
Prazek updated the diff for D47103: Implement strip.invariant.group.
  • small fixes in tests
May 19 2018, 7:21 AM
Prazek updated the diff for D47103: Implement strip.invariant.group.
  • Add deleted tests
May 19 2018, 7:08 AM
Prazek created D47103: Implement strip.invariant.group.
May 19 2018, 6:53 AM
Prazek added inline comments to D47088: Fix aliasing of launder.invariant.group.
May 19 2018, 5:50 AM
Prazek updated the diff for D47088: Fix aliasing of launder.invariant.group.
  • use getArgumentAliasingToReturnedPointer as it does not change behavior
May 19 2018, 5:49 AM
Prazek added inline comments to D47088: Fix aliasing of launder.invariant.group.
May 19 2018, 5:37 AM
Prazek updated the diff for D47088: Fix aliasing of launder.invariant.group.
  • Fixed nit
May 19 2018, 5:12 AM
Prazek updated the diff for D47088: Fix aliasing of launder.invariant.group.

Added comments

May 19 2018, 4:47 AM

May 18 2018

Prazek added a reviewer for D47088: Fix aliasing of launder.invariant.group: nlopes.
May 18 2018, 6:24 PM
Prazek updated the diff for D47088: Fix aliasing of launder.invariant.group.

Refactored code to getArgumentAliasingToReturnedPointer and added few comments.
Please check out isKnownNonZero, as I think it could also use getArgumentAliasingToReturnedPointer.

May 18 2018, 5:37 PM
Prazek committed rL332788: Propagate nonnull and dereferenceable throught launder.
Propagate nonnull and dereferenceable throught launder
May 18 2018, 4:58 PM
Prazek closed D46972: Propagate nonnull and dereferenceable throught launder.
May 18 2018, 4:58 PM
Prazek committed rL332787: Dissallow non-empty metadata for invariant.group.
Dissallow non-empty metadata for invariant.group
May 18 2018, 4:57 PM
Prazek closed D45419: Dissallow non-empty metadata for invariant.group.
May 18 2018, 4:57 PM
Prazek committed rL332786: Constant fold launder of null and undef.
Constant fold launder of null and undef
May 18 2018, 4:56 PM
This revision was not accepted when it landed; it landed in state Needs Review.
May 18 2018, 4:56 PM
Prazek added a comment to D47088: Fix aliasing of launder.invariant.group.

What I want to know is: how did you decide what had to be modified? Did you just look for every place that handles returned arguments? If you had to describe to someone how to find the places that need modification, how would you do it? (because that's what we need in the comment).

Yes, I pretty much checked every place that uses CaptureTracking and looked for special handling of calls or uses of getUnerlyingObject.

May 18 2018, 4:39 PM
Prazek added a comment to D47088: Fix aliasing of launder.invariant.group.

Is there some general principle we can outline to describe where these updates are needed?

May 18 2018, 3:52 PM