Page MenuHomePhabricator

dotdash (Björn Steinbrink)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 24 2014, 8:27 AM (444 w, 1 d)

Recent Activity

Feb 20 2018

dotdash added a comment to D43177: Mark MergedLoadStoreMotion as not preserving MemDep results.

Hi Gerolf,

Feb 20 2018, 2:34 AM

Feb 12 2018

dotdash created D43177: Mark MergedLoadStoreMotion as not preserving MemDep results.
Feb 12 2018, 3:04 AM

Dec 21 2017

dotdash added inline comments to D41400: [MemCpyOpt] Perform call slot optimizations through GEPs.
Dec 21 2017, 6:46 AM

Dec 19 2017

dotdash created D41400: [MemCpyOpt] Perform call slot optimizations through GEPs.
Dec 19 2017, 8:57 AM
dotdash created D41398: Give up on array allocas in getPointerDereferenceableBytes.
Dec 19 2017, 8:53 AM

Dec 18 2017

dotdash created D41355: Treat sret arguments as being dereferenceable in getPointerDereferenceableBytes().
Dec 18 2017, 8:24 AM

Dec 15 2017

dotdash updated the diff for D41305: Properly handle byval arguments in getPointerDereferenceableBytes().

Removed the unnecessary isSized() check

Dec 15 2017, 12:29 PM
dotdash created D41305: Properly handle byval arguments in getPointerDereferenceableBytes().
Dec 15 2017, 12:07 PM
dotdash created D41288: Properly handle multi-element and dynamically sized allocas in getPointerDereferenceableBytes().
Dec 15 2017, 6:06 AM
dotdash abandoned D40723: [MemCpyOpt] Perform call slot optimizations through GEPs.

Will replace with a series of individual review requests.

Dec 15 2017, 5:46 AM
dotdash added a comment to D40723: [MemCpyOpt] Perform call slot optimizations through GEPs.
In D40723#955555, @rnk wrote:

I think you could split this up and write more targetted tests. The sret change needs a test and is probably separable.

Dec 15 2017, 1:52 AM

Dec 13 2017

dotdash added a comment to D40723: [MemCpyOpt] Perform call slot optimizations through GEPs.

could someone take a look at this or maybe suggest a different reviewer if I chose poorly, please?

Dec 13 2017, 4:47 AM

Dec 1 2017

dotdash created D40723: [MemCpyOpt] Perform call slot optimizations through GEPs.
Dec 1 2017, 6:47 AM

Nov 4 2017

dotdash created D39636: [X86] Don't clobber reserved registers with stack adjustments.
Nov 4 2017, 9:37 PM

Oct 5 2017

dotdash updated the diff for D38540: Ignore duplicated, identical fragment declarations.

Updated to address comments by rnk.

Oct 5 2017, 3:05 AM

Oct 4 2017

dotdash created D38540: Ignore duplicated, identical fragment declarations.
Oct 4 2017, 7:10 AM

Apr 17 2017

dotdash added a comment to D31583: StackColoring: smarter check for slot overlap.

Since I had a hand in changing the logic for the live interval calculation, I
feel like I should take some time to explain the approach that was taken here.

Apr 17 2017, 6:40 AM

Apr 16 2017

dotdash added inline comments to D31583: StackColoring: smarter check for slot overlap.
Apr 16 2017, 8:31 AM

Jan 31 2017

dotdash added a comment to D29336: [InstCombine] treat i1 as a special type in shouldChangeType().

LGTM except for the style nitpick which is just personal preference. I don't think I'm allowed to actually accept patches though.

Jan 31 2017, 1:07 PM

Mar 15 2016

dotdash retitled D18192: Add Rust's personality function to the list of known personality functions from to Add Rust's personality function to the list of known personality functions.
Mar 15 2016, 11:14 AM

Aug 21 2015

dotdash added a comment to D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks.

I don't have a plan for this yet. Basically, it seems like we'd have to check for each terminator that is not dominated by a lifetime end whether it is dominated by a lifetime start for each alloca in the function that is being inlined. I'm not sure whether that's feasible or if it would end up being too expensive. Any input is very welcome.

Aug 21 2015, 1:51 AM

Aug 20 2015

dotdash added a comment to D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks.

I had to revert this because it caused test failures in clang, which made me realize that this interacts badly with inlining as it is. The inliner only adds lifetime intrinsics for an inlined alloca if there are no lifetime intrinsics for this alloca at all. But with this patch, we can end up with an alloca that only has a lifetime start but no end. In that case, the inliner wouldn't add lifetime intrinsics, leading to worse stack coloring than before.

Aug 20 2015, 2:09 AM

Aug 18 2015

dotdash updated the diff for D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks.

Updated to correctly handle lifetime intrinsics on undef pointers

Aug 18 2015, 12:38 PM
dotdash added inline comments to D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks.
Aug 18 2015, 11:59 AM

Aug 14 2015

dotdash updated the diff for D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks.

[DSE] Enable removal of lifetime intrinsics in terminating blocks

Aug 14 2015, 2:00 AM
dotdash added a comment to D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks.

The test with invoke was just to have an unwind block, because that's what my original testcase had. I'll remove that test because with just a call it adds nothing that isn't already handled in the other tests.

Aug 14 2015, 1:58 AM

Aug 11 2015

dotdash retitled D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks from [SimplifyCFG] Ignore lifetime intrinsics when looking for empty landing pads to [DSE] Enable removal of lifetime intrinsics in terminating blocks.
Aug 11 2015, 6:13 AM
dotdash updated the diff for D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks.

Replaced the original approach of ignoring lifetime intrinsic when looking for
empty landing pads with an implementation that enhances DSE to remove lifetime
intrinsics from terminating blocks.

Aug 11 2015, 6:12 AM

Aug 10 2015

dotdash added a comment to D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks.

In my case, the callee also contained a call to llvm.lifetime.end, so I didn't consider the removal a problem even if the callee is inlined. But of course you're right, in the general case this could preclude further optimizations.

Aug 10 2015, 3:37 AM

Aug 2 2015

dotdash retitled D11710: [DSE] Enable removal of lifetime intrinsics in terminating blocks from to [SimplifyCFG] Ignore lifetime intrinsics when looking for empty landing pads.
Aug 2 2015, 5:56 AM

May 25 2015

dotdash retitled D9995: Remove conflicting attributes before adding deduced readonly/readnone from to Remove conflicting attributes before adding deduced readonly/readnone.
May 25 2015, 9:58 AM

May 11 2015

dotdash added a comment to D9051: CVP: Improve handling of Selects used as incoming PHI values.

Could somebody have another look at this?

May 11 2015, 4:43 AM

Apr 30 2015

dotdash updated the diff for D9051: CVP: Improve handling of Selects used as incoming PHI values.

Updated the patch to use getConstantOnEdge to improve readability. Added a
simpler test case without a loop and a negative test case. LVI doesn't support
vector types yet, so there's no test for that, but I left a note that support
for vector types may be added later.

Apr 30 2015, 11:25 AM

Apr 29 2015

dotdash added inline comments to D9051: CVP: Improve handling of Selects used as incoming PHI values.
Apr 29 2015, 11:23 AM
dotdash added reviewers for D9051: CVP: Improve handling of Selects used as incoming PHI values: resistor, hfinkel, bkramer.

FWIW, this helps with an optimization problem we hit with the rust compiler:

Apr 29 2015, 5:53 AM

Apr 26 2015

dotdash retitled D9284: Avoid double branch / conditional move for promoted cttz from to Avoid double branch / conditional move for promoted cttz.
Apr 26 2015, 1:24 PM

Apr 17 2015

dotdash updated the diff for D9051: CVP: Improve handling of Selects used as incoming PHI values.

Updated the patch to only apply the optimization to selects with a scalar condition.

Apr 17 2015, 2:16 AM

Apr 16 2015

dotdash retitled D9051: CVP: Improve handling of Selects used as incoming PHI values from to CVP: Improve handling of Selects used as incoming PHI values.
Apr 16 2015, 5:44 AM

Mar 4 2015

dotdash added inline comments to D7984: Optionally extend alloca lifetimes to allow for callslot optimization to happen.
Mar 4 2015, 2:18 AM

Mar 1 2015

dotdash retitled D7984: Optionally extend alloca lifetimes to allow for callslot optimization to happen from to Optionally extend alloca lifetimes to allow for callslot optimization to happen.
Mar 1 2015, 7:49 AM

Feb 10 2015

dotdash added a comment to D7533: Fix a crash in the assumption cache when inlining indirect function calls.

Not sure if this still qualifies for 3.6 (I guess it's not strictly a regression since llvm.assume is new?), but it'd be nice if it would as we hit this bug with rustc when using llvm.assume.

Feb 10 2015, 5:22 AM
dotdash retitled D7533: Fix a crash in the assumption cache when inlining indirect function calls from to Fix a crash in the assumption cache when inlining indirect function calls.
Feb 10 2015, 5:19 AM

Feb 8 2015

dotdash updated the diff for D7490: Correctly combine alias.scope metadata by a union instead of intersecting.

Fixed the line length.

Feb 8 2015, 9:08 AM
dotdash retitled D7490: Correctly combine alias.scope metadata by a union instead of intersecting from to Correctly combine alias.scope metadata by a union instead of intersecting.
Feb 8 2015, 7:36 AM

Feb 7 2015

dotdash updated the diff for D7482: Properly update AA metadata when performing call slot optimization.

Added a FIXME for MD_tbaa_struct and MD_mem_parallel_loop_access

Feb 7 2015, 9:55 AM
dotdash retitled D7482: Properly update AA metadata when performing call slot optimization from to Properly update AA metadata when performing call slot optimization.
Feb 7 2015, 9:22 AM

Jan 28 2015

dotdash updated the diff for D7165: Fix LLVMSetMetadata for MDNodes that contain a single value.

Updated the header in metadata.c to mention the second command implemented in that file. Sorry for the noise.

Jan 28 2015, 2:17 AM
dotdash updated the diff for D7165: Fix LLVMSetMetadata for MDNodes that contain a single value.

Added an MDNode extraction function with proper assertions, fixed
LLVMAddNamedMetadataOperand, and wrote a test for it.

Jan 28 2015, 2:12 AM

Jan 27 2015

dotdash updated the diff for D7165: Fix LLVMSetMetadata for MDNodes that contain a single value.

Thanks for the feedback!

Jan 27 2015, 3:00 PM
dotdash added a reviewer for D7165: Fix LLVMSetMetadata for MDNodes that contain a single value: dexonsmith.

I guess I should mention that triggering the assertion is a regression from 3.5.

Jan 27 2015, 1:56 AM

Jan 25 2015

dotdash retitled D7165: Fix LLVMSetMetadata for MDNodes that contain a single value from to Fix LLVMSetMetadata for MDNodes that contain a single value.
Jan 25 2015, 11:30 AM

Jan 13 2015

dotdash abandoned D6829: Add basic support for removal of load that are fed by a store of an aggregate.
Jan 13 2015, 3:09 PM

Jan 2 2015

dotdash retitled D6829: Add basic support for removal of load that are fed by a store of an aggregate from to Add basic support for removal of load that are fed by a store of an aggregate.
Jan 2 2015, 1:27 PM

Oct 16 2014

dotdash added inline comments to D5832: Allow call-slop optzn for destinations with a suitable dereferenceable attribute.
Oct 16 2014, 12:43 PM
dotdash retitled D5832: Allow call-slop optzn for destinations with a suitable dereferenceable attribute from to Allow call-slop optzn for destinations with a suitable dereferenceable attribute.
Oct 16 2014, 12:22 PM

Sep 9 2014

dotdash added a comment to D4595: Correctly handle range metadata when hoisting instructions out of then/else into if blocks.

Committed as r217453

Sep 9 2014, 10:22 AM

Sep 8 2014

dotdash added a comment to D4595: Correctly handle range metadata when hoisting instructions out of then/else into if blocks.

I have commit access by now, can I just commit the test or was there a reason it was left out?

Sep 8 2014, 11:05 PM

Sep 2 2014

dotdash updated the diff for D5143: Restore the ability to check if LLVMCreateObjectFile was successful.

Thanks, did not known about "not" before. Updated the test case to use it.

Sep 2 2014, 12:34 PM
dotdash updated the diff for D5143: Restore the ability to check if LLVMCreateObjectFile was successful.

Added a test case.

Sep 2 2014, 12:13 PM

Sep 1 2014

dotdash retitled D5143: Restore the ability to check if LLVMCreateObjectFile was successful from to Restore the ability to check if LLVMCreateObjectFile was successful.
Sep 1 2014, 1:53 PM
dotdash added a comment to D5136: Fix crash when looking up the addrspace of GEPs with vector types.

Had another look, still couldn't find anything. The code is either using GetElementPtrInst instead of GEPOperator, calls getType()->getPointerAddressSpace() or checks for vector types beforehand, so it doesn't trigger the bug. Alias analysis seemed like it could work, but I didn't manage to get a testcase with that either (and I'm too clueless about that code).

Sep 1 2014, 12:42 PM

Aug 31 2014

dotdash updated the diff for D5136: Fix crash when looking up the addrspace of GEPs with vector types.

Updated the patch to use getPointerAddressSpace(), couldn't find a different
pass that triggers the bug though, so the test still uses mergefunc

Aug 31 2014, 1:06 PM
dotdash retitled D5136: Fix crash when looking up the addrspace of GEPs with vector types from to Fix crash when looking up the addrspace of GEPs with vector types.
Aug 31 2014, 6:35 AM

Aug 15 2014

dotdash added a comment to D4595: Correctly handle range metadata when hoisting instructions out of then/else into if blocks.

No, I don't have commit access.

Aug 15 2014, 8:43 AM
dotdash updated the diff for D4595: Correctly handle range metadata when hoisting instructions out of then/else into if blocks.

Updated the patch to introduce a helper to combine instruction metadata and
handle all metadata for the hoisted instructions.

Aug 15 2014, 8:10 AM

Jul 30 2014

dotdash added a comment to D4699: SimplifyCFG: Avoid miscompilations due to removed lifetime intrinsics.

I should note that I do not have commit access and need somebody to commit this for me.

Jul 30 2014, 12:55 AM

Jul 28 2014

dotdash retitled D4699: SimplifyCFG: Avoid miscompilations due to removed lifetime intrinsics from to SimplifyCFG: Avoid miscompilations due to removed lifetime intrinsics.
Jul 28 2014, 1:51 PM
dotdash added a comment to D4595: Correctly handle range metadata when hoisting instructions out of then/else into if blocks.

Could somebody please review this patch? Thanks!

Jul 28 2014, 12:53 PM

Jul 18 2014

dotdash retitled D4595: Correctly handle range metadata when hoisting instructions out of then/else into if blocks from to Correctly handle range metadata when hoisting instructions out of then/else into if blocks.
Jul 18 2014, 5:10 PM

Jun 25 2014

dotdash updated the diff for D4246: MergeFunc: Don't merge functions with different range metadata on call/invoke.

Updated the tests for invoke-with-ranges to avoid the bitcasts

Jun 25 2014, 11:38 PM

Jun 22 2014

dotdash retitled D4246: MergeFunc: Don't merge functions with different range metadata on call/invoke from to MergeFunc: Don't merge functions with different range metadata on call/invoke.
Jun 22 2014, 6:11 AM

Jun 17 2014

dotdash closed D3297: Fix SROA regression causing data corruption, fixes PR19250.

Committed in r211082

Jun 17 2014, 11:44 AM
dotdash accepted D3297: Fix SROA regression causing data corruption, fixes PR19250.
Jun 17 2014, 11:43 AM

Jun 16 2014

dotdash updated the diff for D3297: Fix SROA regression causing data corruption, fixes PR19250.

Fix SROA regression causing miscompilation, fixes PR19250

Jun 16 2014, 3:16 PM

Jun 12 2014

dotdash added a comment to D4062: MergeFunc: Avoid invalid merge of functions using different range metadata.

Hi Stepan,
yes, I need someone to commit this for me.

Jun 12 2014, 10:41 PM

Jun 11 2014

dotdash updated the diff for D4062: MergeFunc: Avoid invalid merge of functions using different range metadata.

Reverted back to the patch the avoids the merge in case of different range
metadata and adjusted the tests to check for the whole function body remaining
unchanged.

Jun 11 2014, 10:39 AM
dotdash added a comment to D4062: MergeFunc: Avoid invalid merge of functions using different range metadata.

Hi Stepan,

Jun 11 2014, 9:19 AM

Jun 10 2014

dotdash added a reviewer for D3297: Fix SROA regression causing data corruption, fixes PR19250: dexonsmith.
Jun 10 2014, 10:15 AM
dotdash updated the diff for D3297: Fix SROA regression causing data corruption, fixes PR19250.

Sorry, forgot to remove the old @test25 from the original patch.

Jun 10 2014, 9:27 AM
dotdash updated the diff for D3297: Fix SROA regression causing data corruption, fixes PR19250.

Added a comment to explain why the whole if-else block has to be moved after
the early continue. Moved the original test into its own file and added new
tests for the slice order indepence of the chosen type for the alloca.

Jun 10 2014, 9:26 AM
dotdash updated the diff for D4062: MergeFunc: Avoid invalid merge of functions using different range metadata.

Updated the patch to merge the range metadata for the loads instead of not
merging such functions at all. I found mergeTwoFunctions() to be a better place
than insert() to call the new method that handles the merge of the range
metadata. I hope this is what you had in mind.

Jun 10 2014, 8:41 AM

Jun 9 2014

dotdash added a comment to D4062: MergeFunc: Avoid invalid merge of functions using different range metadata.

I wasn't sure about expanding the range to be more generic, since I thought that that might defeat some optimizations in other passes. I'll update the patch later today.

Jun 9 2014, 9:56 PM

Jun 8 2014

dotdash retitled D4062: MergeFunc: Avoid invalid merge of functions using different range metadata from to MergeFunc: Avoid invalid merge of functions using different range metadata.
Jun 8 2014, 10:37 AM

Jun 5 2014

dotdash added a comment to D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

Hi Stepan,

Jun 5 2014, 3:07 PM
dotdash updated the diff for D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

Removed the now obsolete changed to mergefunc, keeping just the regression tests

Jun 5 2014, 3:02 PM
dotdash updated subscribers of D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

Hi Sean, Hi Nick,

Jun 5 2014, 2:05 PM

May 29 2014

dotdash added a comment to D3297: Fix SROA regression causing data corruption, fixes PR19250.

I'd be grateful if somebody could take the time to review this. The regression fixed by this is blocking rust (the language) from using i1 for its bool type.

May 29 2014, 4:08 AM

May 9 2014

dotdash added a comment to D3297: Fix SROA regression causing data corruption, fixes PR19250.

ping

May 9 2014, 9:25 AM

Apr 23 2014

dotdash updated the diff for D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

Really fix the -stats related part of the test

Apr 23 2014, 1:27 AM
dotdash updated the diff for D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

Fixed the test to include -stats

Apr 23 2014, 1:19 AM
dotdash updated the diff for D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

Fix a mergefunc crash caused by bitcasting intrinsics

Apr 23 2014, 1:15 AM
dotdash added a comment to D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

Yeah, that's what I meant earlier. The result would look like this:

Apr 23 2014, 1:06 AM

Apr 22 2014

dotdash added a comment to D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

I probably shouldn't have said crash. The mergefunc pass completes. Without merging the functions. But in enumerate, it created that bitcast of the intrinsic, which is added to the list of users of that intrinsic. What happens then is that the verify pass checks all users of all intrinsics, sees the bitcast, complains about it and aborts.

Apr 22 2014, 11:42 PM
dotdash added a comment to D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

Stepan,
do you still want the test to be adjusted, given that the functions aren't actually merged? If so, I'd have to increase the size of both functions, for it to make any sense, because they're currently too small to be merged anyway. Doing so would be ok with me, but doesn't seem relevant to the bug at hand.

Apr 22 2014, 11:27 PM
dotdash added a comment to D3437: Fix a mergefunc crash caused by bitcasting intrinsics.

2014-04-23 7:52 GMT+02:00 Stepan Dyatkovskiy <stpworld@narod.ru>:

I suspect this code:

C1 == ConstantExpr::getBitCast(const_cast<Constant*>(C2), C1->getType());

We didn't expect it will return "true" for such bitcast (from "i8* @breaker(i8*)" to "i64 @llvm.bswap.i64(i64)". Those are different functions. Perhaps *this* is the real bug?

Apr 22 2014, 11:10 PM