Page MenuHomePhabricator

jdoerfert (Johannes Doerfert)
Argonne National Laboratory

Projects

User does not belong to any projects.

User Details

User Since
Jan 30 2014, 6:27 AM (298 w, 4 d)

Recent Activity

Yesterday

jdoerfert committed rG9d5ad5e45fe4: [Attributor][FIX] Silence sign-compare warning (authored by jdoerfert).
[Attributor][FIX] Silence sign-compare warning
Sun, Oct 20, 6:34 PM
jdoerfert committed rL375384: [Attributor][FIX] Silence sign-compare warning.
[Attributor][FIX] Silence sign-compare warning
Sun, Oct 20, 6:32 PM
jdoerfert committed rG3839b57f7306: [Attributor] Teach AANoCapture to use information in-flight more aggressively (authored by jdoerfert).
[Attributor] Teach AANoCapture to use information in-flight more aggressively
Sun, Oct 20, 5:48 PM
jdoerfert committed rL375382: [Attributor] Teach AANoCapture to use information in-flight more aggressively.
[Attributor] Teach AANoCapture to use information in-flight more aggressively
Sun, Oct 20, 5:47 PM

Sat, Oct 19

jdoerfert accepted D68928: Fix clone_constant_impl to correctly deal with null pointers.

LGTM

Sat, Oct 19, 12:45 PM · Restricted Project
jdoerfert added inline comments to D66088: AMD Znver2 (Rome) Scheduler enablement.
Sat, Oct 19, 12:36 PM · Restricted Project

Mon, Oct 14

jdoerfert accepted D68615: [libomptarget][nfc] Make interface.h target independent.

Ping. I'm hoping this is uncontentious.

Mon, Oct 14, 4:20 PM · Restricted Project
jdoerfert added inline comments to D68958: [Attributor] Add "free"-based heap2stack deduction.
Mon, Oct 14, 3:41 PM · Restricted Project
jdoerfert created D68958: [Attributor] Add "free"-based heap2stack deduction.
Mon, Oct 14, 3:37 PM · Restricted Project
jdoerfert added inline comments to D68925: [Attributor] Liveness for values.
Mon, Oct 14, 12:08 PM · Restricted Project
jdoerfert accepted D67886: NoFree argument attribute..

Small nits. Otherwise LGTM.
Also, make sure we have a test with 2 pointer arguments, one freed, one no-free annotated.

Mon, Oct 14, 10:06 AM · Restricted Project
jdoerfert added a comment to D29011: [IR] Add Freeze instruction.

In line with a few recent reverts, is this missing anything for ocaml binding?
(does it compile with ocaml binding enabled and do all tests still pass?)

Mon, Oct 14, 9:01 AM
jdoerfert accepted D29011: [IR] Add Freeze instruction.

Fwiw, I'm OK with this (given that we have my requested changes in upcoming commits).

Mon, Oct 14, 8:52 AM

Sun, Oct 13

jdoerfert created D68934: [Attributor] Make value simplify stronger.
Sun, Oct 13, 11:43 PM · Restricted Project
jdoerfert created D68933: [MustExecute] Forward iterate over conditional branches.
Sun, Oct 13, 11:34 PM · Restricted Project
jdoerfert created D68932: [Attributor][MustExecute] Use optimistic information in MustBeExecutedContextExplorer.
Sun, Oct 13, 11:25 PM · Restricted Project
jdoerfert updated the diff for D68925: [Attributor] Liveness for values.

Minor updates and fixes

Sun, Oct 13, 11:23 PM · Restricted Project
jdoerfert added a comment to D67886: NoFree argument attribute..

quick feedback

Sun, Oct 13, 2:44 PM · Restricted Project
jdoerfert updated the diff for D68766: [NFC][ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests.

Rerun with fixed script to use argument variable names in body

Sun, Oct 13, 2:44 PM · Restricted Project
jdoerfert committed rG0cc2b61943ab: [Attributor] Shortcut no-return through will-return (authored by jdoerfert).
[Attributor] Shortcut no-return through will-return
Sun, Oct 13, 2:26 PM
jdoerfert committed rL374739: [Attributor] Shortcut no-return through will-return.
[Attributor] Shortcut no-return through will-return
Sun, Oct 13, 2:26 PM
jdoerfert committed rGd82385b04913: [Attributor][FIX] NullPointerIsDefined needs the pointer AS (AANonNull) (authored by jdoerfert).
[Attributor][FIX] NullPointerIsDefined needs the pointer AS (AANonNull)
Sun, Oct 13, 1:49 PM
jdoerfert committed rG8ee410c75ec4: [Attributor][MemBehavior] Fallback to the function state for arguments (authored by jdoerfert).
[Attributor][MemBehavior] Fallback to the function state for arguments
Sun, Oct 13, 1:49 PM
jdoerfert committed rL374737: [Attributor][FIX] NullPointerIsDefined needs the pointer AS (AANonNull).
[Attributor][FIX] NullPointerIsDefined needs the pointer AS (AANonNull)
Sun, Oct 13, 1:49 PM
jdoerfert committed rL374736: [Attributor][MemBehavior] Fallback to the function state for arguments.
[Attributor][MemBehavior] Fallback to the function state for arguments
Sun, Oct 13, 1:49 PM
jdoerfert committed rGdb6efb017f24: [Attributor][FIX] Use check prefix that is actually tested (authored by jdoerfert).
[Attributor][FIX] Use check prefix that is actually tested
Sun, Oct 13, 1:40 PM
jdoerfert committed rL374735: [Attributor][FIX] Use check prefix that is actually tested.
[Attributor][FIX] Use check prefix that is actually tested
Sun, Oct 13, 1:40 PM
jdoerfert closed D68929: [Attributor][FIX] Use check line that is actually tested.
Sun, Oct 13, 1:40 PM · Restricted Project
jdoerfert updated the diff for D68929: [Attributor][FIX] Use check line that is actually tested.

Handle pointers with address spaces and make sure uses are pointer operands

Sun, Oct 13, 11:23 AM · Restricted Project
jdoerfert created D68929: [Attributor][FIX] Use check line that is actually tested.
Sun, Oct 13, 11:14 AM · Restricted Project
jdoerfert updated the diff for D68925: [Attributor] Liveness for values.

Non-exact functions fix + more tests

Sun, Oct 13, 1:24 AM · Restricted Project
jdoerfert created D68925: [Attributor] Liveness for values.
Sun, Oct 13, 1:15 AM · Restricted Project
jdoerfert abandoned D68626: [Attributor] Use undef for calls with unused arguments..

Dropped in favor of D68925.

Sun, Oct 13, 1:15 AM · Restricted Project

Sat, Oct 12

jdoerfert committed rG4056e7f02a40: [Attributor][FIX] Avoid splitting blocks if possible (authored by jdoerfert).
[Attributor][FIX] Avoid splitting blocks if possible
Sat, Oct 12, 10:28 PM
jdoerfert committed rL374703: [Attributor][FIX] Avoid splitting blocks if possible.
[Attributor][FIX] Avoid splitting blocks if possible
Sat, Oct 12, 10:28 PM
jdoerfert committed rG4868841ee4ff: [Attributor][FIX] Remove leftover, now unused, variable (authored by jdoerfert).
[Attributor][FIX] Remove leftover, now unused, variable
Sat, Oct 12, 10:19 PM
jdoerfert committed rL374702: [Attributor][FIX] Remove leftover, now unused, variable.
[Attributor][FIX] Remove leftover, now unused, variable
Sat, Oct 12, 10:19 PM
jdoerfert committed rGe9d3f708220a: [Attributor] Remove unused verification flag (authored by jdoerfert).
[Attributor] Remove unused verification flag
Sat, Oct 12, 10:10 PM
jdoerfert committed rL374701: [Attributor] Remove unused verification flag.
[Attributor] Remove unused verification flag
Sat, Oct 12, 10:10 PM
jdoerfert updated the diff for D68008: [Attributor] Use abstract call sites to determine associated arguments.

Fixes and check line update

Sat, Oct 12, 10:01 PM · Restricted Project
jdoerfert committed rG3753aa75d2f2: [Attributor][NFC] Expose call site traversal without QueryingAA (authored by jdoerfert).
[Attributor][NFC] Expose call site traversal without QueryingAA
Sat, Oct 12, 9:15 PM
jdoerfert committed rGaf6e4797330b: [Attributor][FIX] Ensure h2s doesn't trigger on escaped pointers (authored by jdoerfert).
[Attributor][FIX] Ensure h2s doesn't trigger on escaped pointers
Sat, Oct 12, 9:15 PM
jdoerfert committed rL374700: [Attributor][NFC] Expose call site traversal without QueryingAA.
[Attributor][NFC] Expose call site traversal without QueryingAA
Sat, Oct 12, 9:15 PM
jdoerfert committed rL374699: [Attributor][FIX] Ensure h2s doesn't trigger on escaped pointers.
[Attributor][FIX] Ensure h2s doesn't trigger on escaped pointers
Sat, Oct 12, 9:15 PM
jdoerfert committed rGd20f80780e05: [Attributor][FIX] Do not apply h2s for arbitrary mallocs (authored by jdoerfert).
[Attributor][FIX] Do not apply h2s for arbitrary mallocs
Sat, Oct 12, 8:57 PM
jdoerfert committed rL374698: [Attributor][FIX] Do not apply h2s for arbitrary mallocs.
[Attributor][FIX] Do not apply h2s for arbitrary mallocs
Sat, Oct 12, 8:57 PM
jdoerfert committed rG9daf51910b11: [Attributor][FIX] Add missing function declaration in test case (authored by jdoerfert).
[Attributor][FIX] Add missing function declaration in test case
Sat, Oct 12, 7:44 PM
jdoerfert committed rL374696: [Attributor][FIX] Add missing function declaration in test case.
[Attributor][FIX] Add missing function declaration in test case
Sat, Oct 12, 7:43 PM
jdoerfert committed rG92694eba933e: [SROA] Reuse existing lifetime markers if possible (authored by jdoerfert).
[SROA] Reuse existing lifetime markers if possible
Sat, Oct 12, 7:25 PM
jdoerfert committed rGea1e81f54b95: [Attributor][FIX] Avoid modifying naked/optnone functions (authored by jdoerfert).
[Attributor][FIX] Avoid modifying naked/optnone functions
Sat, Oct 12, 7:25 PM
jdoerfert committed rL374694: [Attributor][FIX] Avoid modifying naked/optnone functions.
[Attributor][FIX] Avoid modifying naked/optnone functions
Sat, Oct 12, 7:25 PM
jdoerfert closed D68900: [SROA] Reuse existing lifetime markers if possible.
Sat, Oct 12, 7:25 PM · Restricted Project
jdoerfert committed rL374692: [SROA] Reuse existing lifetime markers if possible.
[SROA] Reuse existing lifetime markers if possible
Sat, Oct 12, 7:25 PM
jdoerfert added a comment to D29011: [IR] Add Freeze instruction.

Two minor comments from my side.

Sat, Oct 12, 11:22 AM
jdoerfert added a comment to D68626: [Attributor] Use undef for calls with unused arguments..

I have no problem with this going in as is. I have one question though. Why do we have to wait for ValueSimplify to finish? Wouldn't it be useful for AAIsDead to have isDeadArg(Arg) and then ValueSimplify could use that to decide whether to simplify or not?

Sat, Oct 12, 11:04 AM · Restricted Project

Fri, Oct 11

jdoerfert created D68900: [SROA] Reuse existing lifetime markers if possible.
Fri, Oct 11, 5:00 PM · Restricted Project
jdoerfert added a comment to D68819: [Utils] Allow update_test_checks to check function arguments.

We can, or should, combine D68153 and this, either in one or two patches.

Sounds good. Do you think D68153 should operate under the --function-signature flag, under a different flag or always include define in the pattern (meaning all tests will change when the tool is re-run)?

Fri, Oct 11, 10:51 AM · Restricted Project

Thu, Oct 10

jdoerfert added a comment to D68766: [NFC][ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests.

If you want to add attributor runlines, i really insist on following the example i showed, it will result in cleaner diff overall.
That being said i like that the attributor runlines are in a separate diff.

Thu, Oct 10, 7:49 PM · Restricted Project
jdoerfert added a comment to D68852: [Attributor] Pointer privatization attribute (argument promotion).

I went through all the tests, added mem2reg/sroa where approriate and modified the source sometimes, mostly to avoid UB. I think the results of the Attributor look good, all problems should have been addressed already.

Thu, Oct 10, 7:40 PM · Restricted Project
jdoerfert created D68852: [Attributor] Pointer privatization attribute (argument promotion).
Thu, Oct 10, 7:40 PM · Restricted Project
jdoerfert committed rG8fa56c49dfc7: [Attributor][FIX] Do not replace musstail calls with constant (authored by jdoerfert).
[Attributor][FIX] Do not replace musstail calls with constant
Thu, Oct 10, 6:45 PM
jdoerfert committed rL374498: [Attributor][FIX] Do not replace musstail calls with constant.
[Attributor][FIX] Do not replace musstail calls with constant
Thu, Oct 10, 6:45 PM
jdoerfert created D68851: [Utils] Allow update_test_checks to scrub attribute annotations.
Thu, Oct 10, 6:35 PM · Restricted Project
jdoerfert added a comment to D68153: Make IR labels more precise.

I stole this and added it into D68819 as well.

Thu, Oct 10, 6:35 PM · Restricted Project
jdoerfert updated the diff for D68766: [NFC][ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests.

Rerun with D68850 and updated D68819

Thu, Oct 10, 6:35 PM · Restricted Project
jdoerfert created D68850: [Utils] Deal with occasionally deleted functions.
Thu, Oct 10, 6:26 PM · Restricted Project
jdoerfert updated the diff for D68819: [Utils] Allow update_test_checks to check function arguments.

Lessons learned by running it on all argument promotion files: D68766

Thu, Oct 10, 6:17 PM · Restricted Project
jdoerfert updated the diff for D68765: [Attributor] Function signature rewrite infrastructure.

Lessons learned from running *all* argument promotion tests, patches will follow

Thu, Oct 10, 6:08 PM · Restricted Project
jdoerfert added a comment to D68153: Make IR labels more precise.

Wouldn't this mean that every regeneration would see this change?

Yes. The label pattern is just wrong as-is because it will match calls in some cases.

Thu, Oct 10, 5:04 PM · Restricted Project
jdoerfert added a comment to D68819: [Utils] Allow update_test_checks to check function arguments.

Does this subsume the goal of D68153? If so I am happy to abandon that revision. D68153 attempts to solve the problem of a CHECK-LABEL matching a function call instead of the start of a function definition. It looks like with --function-signature the CHECK-LABEL will include the arguments in the label pattern which should be enough to disambiguate it from a call to the function. Do I have that right?

EDIT: Actually, I don't think it will completely work if there is a recursive call to, say, foo that passes the same arguments through. In that case the call will look exactly like the function signature. The same is true if an unrelated function makes a call to foo with values that just happen to be named the same as foo's arguments.

Thu, Oct 10, 2:53 PM · Restricted Project
jdoerfert updated the diff for D68819: [Utils] Allow update_test_checks to check function arguments.

Include personality, fix versioning based on different args, tested on D68766

Thu, Oct 10, 12:18 PM · Restricted Project
jdoerfert updated the diff for D68766: [NFC][ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests.

Rerun update with newest version of D68819

Thu, Oct 10, 12:18 PM · Restricted Project
jdoerfert added a comment to D68819: [Utils] Allow update_test_checks to check function arguments.

This doesn't change the default, right?

Thu, Oct 10, 12:18 PM · Restricted Project
jdoerfert created D68819: [Utils] Allow update_test_checks to check function arguments.
Thu, Oct 10, 10:32 AM · Restricted Project
jdoerfert added a comment to D67986: [InstCombine] snprintf (d, size, "%s", s) -> memccpy (d, s, '\0', size - 1), d[size - 1] = 0.

This transformation seems to increase code size significantly. Is the snprintf "%s" pattern common enough? I suspect most projects have already used memccpy, stpncpy, strscpy, or strlcpy. For the few that don't, the performance probably does not matter.

Yes, quite common. But okay, if you dont want it, let's just abandon it.

Thu, Oct 10, 10:32 AM · Restricted Project
jdoerfert added a comment to D68766: [NFC][ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests.

Thx for the initial feedback, I'll update this soon.

Thu, Oct 10, 9:45 AM · Restricted Project
jdoerfert updated the diff for D68766: [NFC][ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests.

Fix all but 3 tests, unknown what the problem there is

Thu, Oct 10, 1:07 AM · Restricted Project
jdoerfert added a comment to D68766: [NFC][ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests.

I just run update on all of them and did not fix them yet. Please provide feedback if you have any, I'll update this revision asap.

Thu, Oct 10, 12:20 AM · Restricted Project
jdoerfert created D68766: [NFC][ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests.
Thu, Oct 10, 12:20 AM · Restricted Project
jdoerfert created D68765: [Attributor] Function signature rewrite infrastructure.
Thu, Oct 10, 12:11 AM · Restricted Project

Wed, Oct 9

jdoerfert updated the diff for D68626: [Attributor] Use undef for calls with unused arguments..

Update tests, keep it in ValueSimplify for now

Wed, Oct 9, 11:52 PM · Restricted Project
jdoerfert updated the summary of D68008: [Attributor] Use abstract call sites to determine associated arguments.
Wed, Oct 9, 11:23 PM · Restricted Project
jdoerfert updated the diff for D68008: [Attributor] Use abstract call sites to determine associated arguments.

Add no-alias restriction and test

Wed, Oct 9, 11:14 PM · Restricted Project
jdoerfert committed rG72adda1740ca: [Attributor] Handle `null` differently in capture and alias logic (authored by jdoerfert).
[Attributor] Handle `null` differently in capture and alias logic
Wed, Oct 9, 10:38 PM
jdoerfert committed rG1c2afae7dcf6: [Attributor][NFC] clang format (authored by jdoerfert).
[Attributor][NFC] clang format
Wed, Oct 9, 10:38 PM
jdoerfert closed D68624: [Attributor] Handle `null` differently in capture and alias logic.
Wed, Oct 9, 10:38 PM · Restricted Project
jdoerfert committed rL374280: [Attributor] Handle `null` differently in capture and alias logic.
[Attributor] Handle `null` differently in capture and alias logic
Wed, Oct 9, 10:38 PM
jdoerfert committed rL374281: [Attributor][NFC] clang format.
[Attributor][NFC] clang format
Wed, Oct 9, 10:38 PM
jdoerfert accepted D68706: [InstCombine] don't assume 'inbounds' for bitcast deref or null pointer in non-default address space.

Can you add the test I provided as well?

Did I miss a message? I copy/pasted at line 92 of the test file (no diff from the code change):

define float @matching_scalar_smallest_deref_addrspace(<4 x float> addrspace(4)* dereferenceable(1) %p) {
; CHECK-LABEL: @matching_scalar_smallest_deref_addrspace(
; CHECK-NEXT:    [[BC:%.*]] = getelementptr inbounds <4 x float>, <4 x float> addrspace(4)* [[P:%.*]], i64 0, i64 0
; CHECK-NEXT:    [[R:%.*]] = load float, float addrspace(4)* [[BC]], align 16
; CHECK-NEXT:    ret float [[R]]
;
  %bc = bitcast <4 x float> addrspace(4)* %p to float addrspace(4)*
  %r = load float, float addrspace(4)* %bc, align 16
  ret float %r
}
Wed, Oct 9, 1:00 PM · Restricted Project
jdoerfert added a comment to D68706: [InstCombine] don't assume 'inbounds' for bitcast deref or null pointer in non-default address space.

Can you add the test I provided as well?

Wed, Oct 9, 11:36 AM · Restricted Project
jdoerfert added a comment to D68706: [InstCombine] don't assume 'inbounds' for bitcast deref or null pointer in non-default address space.

You want llvm::NullPointerIsDefined(), which also checks for "null-pointer-is-valid" attribute.

Wed, Oct 9, 9:50 AM · Restricted Project

Tue, Oct 8

jdoerfert added inline comments to D68633: [utils] InlineFunction: fix for debug info affecting optimizations.
Tue, Oct 8, 10:36 AM · Restricted Project

Mon, Oct 7

jdoerfert added a comment to D68615: [libomptarget][nfc] Make interface.h target independent.

I like this better. I'll review it tomorrow (I hope).

Mon, Oct 7, 11:02 PM · Restricted Project
jdoerfert committed rG748538e166ef: [Attributor][NFC] Add debug output (authored by jdoerfert).
[Attributor][NFC] Add debug output
Mon, Oct 7, 10:23 PM
jdoerfert committed rGd4bea8830c91: [Attributor][FIX] Remove initialize calls and add undefs (authored by jdoerfert).
[Attributor][FIX] Remove initialize calls and add undefs
Mon, Oct 7, 10:23 PM
jdoerfert committed rL373988: [Attributor][NFC] Add debug output.
[Attributor][NFC] Add debug output
Mon, Oct 7, 10:23 PM
jdoerfert committed rG766f2cc1a4bb: [Attributor] Use local linkage instead of internal (authored by jdoerfert).
[Attributor] Use local linkage instead of internal
Mon, Oct 7, 10:23 PM
jdoerfert committed rL373987: [Attributor][FIX] Remove initialize calls and add undefs.
[Attributor][FIX] Remove initialize calls and add undefs
Mon, Oct 7, 10:23 PM
jdoerfert committed rG661db04b98c9: [Attributor] Use abstract call sites for call site callback (authored by jdoerfert).
[Attributor] Use abstract call sites for call site callback
Mon, Oct 7, 10:23 PM
jdoerfert committed rL373986: [Attributor] Use local linkage instead of internal.
[Attributor] Use local linkage instead of internal
Mon, Oct 7, 10:23 PM