Today

ast committed rL304043: [bpf] disallow global_addr+off folding.
[bpf] disallow global_addr+off folding
Fri, May 26, 3:33 PM
t.p.northover created D33610: Stop asserting on constexpr explicit MS constructor calls..
Fri, May 26, 3:28 PM
iteratee updated the summary of D33577: CodeGen: BlockPlacement: Use Branching factor to choose between near equals..
Fri, May 26, 3:22 PM
EricWF added a comment to D29877: Warn about unused static file scope function template declarations..

I think this patch still gets the following case wrong:

// foo.h
constexpr struct {
  template <class T> void operator()(T) {} // emits unused template warning
} foo;

What specifically do you think is wrong here? There is an unused internal linkage function template here. If we want to warn on unused internal linkage templates declared in headers, we should warn on this one.

Fri, May 26, 3:21 PM
pcc created D33609: Bitcode: Remove some dead code. Spotted by Teresa..
Fri, May 26, 3:21 PM
phosek updated the diff for D32817: [CMake] Build runtimes for Fuchsia targets.
Fri, May 26, 3:20 PM
iteratee added a comment to D33577: CodeGen: BlockPlacement: Use Branching factor to choose between near equals..
It is basically a choice between a layout (exiting) that has 50% chance of not taking any branches , 25% of taking one branch, and 25% of taking more than one branches   vs the new layout that has only 6.25% chance of taking zero branch and 93.75% of taking only one branch.

The existing layout only has 25% chance of taking more than 2 branches -- is it worth sacrificing 43.75% of chances to not take any branches for the improvement for the 25% cases?

Fri, May 26, 3:19 PM
anemet added a comment to D33584: Remove a quadratic behavior in assert-enabled builds.

I certainly agree that if we're not returning false for the non-unique edge case then that will cause bugs later on.

Can I add unit-tests for edge-domination somehow? I am trying to test this with allowing non-unique edges in GVN but that won't fly as regression test.

I'd just go with a regular C++ test case in unittests/

Fri, May 26, 3:18 PM
pcanal added a comment to D30107: Refactor DynamicLibrary so searching for a symbol will have a defined order and libraries are properly unloaded when llvm_shutdown is called..

I assume you guys aren't arguing to going back to undefined behavior just because it worked better for you.

Fri, May 26, 3:18 PM
msearles updated the diff for D33576: [AMDGPU] Require waitcnt before barrier for all targets; adjust tests..

Ug. Fix revision; added wrong set of diffs; correcting.

Fri, May 26, 3:18 PM
dberlin added a comment to D33584: Remove a quadratic behavior in assert-enabled builds.

Today if the bb0 -> bb1 edge dominates some use of %cond then said use can be replaced with i1 true, but with your change that will no longer hold.

Today, any caller that asks if edge bb0->bb1 dominates some use of cond, it will assert :)

I see what you mean -- since we're only changing behavior in the case we'd have failed an assert before (i.e. before this change), the behavior change is correct by definition.

Now, you are right that there are situation we *could* return true, but we wouldn't :)

We wouldn't return true today (i.e. without this patch), but we would return true once this patch is applied. I was trying to argue that it makes more sense to return false for non-unique edges, since it preserves the "if the bb0 -> bb1 edge dominates some use of %cond then said use can be replaced with i1 true" reasoning. The reasoning holds today on all of the cases where the antecedent, "if the bb0 -> bb1 edge dominates some use of %cond", is valid (i.e. does not assert). With this change, we will make the antecedent valid in some cases where that implication won't hold, which is what I'm suggesting we avoid.

Fri, May 26, 3:17 PM
sanjoy added a comment to D33584: Remove a quadratic behavior in assert-enabled builds.

I certainly agree that if we're not returning false for the non-unique edge case then that will cause bugs later on.

Can I add unit-tests for edge-domination somehow? I am trying to test this with allowing non-unique edges in GVN but that won't fly as regression test.

Fri, May 26, 3:16 PM
anemet added a comment to D33584: Remove a quadratic behavior in assert-enabled builds.

I certainly agree that if we're not returning false for the non-unique edge case then that will cause bugs later on.

Fri, May 26, 3:15 PM
evstupac added a comment to D21720: Unroll for uncountable loops.

The use of the "Force" bit here is still really confusing... we need a better way of expressing the profitability of unrolling.

Fri, May 26, 3:15 PM
msearles updated the diff for D33576: [AMDGPU] Require waitcnt before barrier for all targets; adjust tests..

Updates since last set of diffs:

  • Fix conditional in SIInsertWaitCnts::updateEventWaitCntAfter() , which was always returning true
  • Tweak how DS_PERMUTE/DS_SWIZZLE ops are modeled to cover issue found during RADV testing
  • Tweak how new pass inserts waitcnts at the beginning/end of functions to match what old pass does
  • Adjust existing tests
  • Add new test ( test/CodeGen/AMDGPU/waitcnt-permute.mir ) to cover issue found during RADV testing
Fri, May 26, 3:15 PM
rsmith added a comment to D29877: Warn about unused static file scope function template declarations..

I think this patch still gets the following case wrong:

// foo.h
constexpr struct {
  template <class T> void operator()(T) {} // emits unused template warning
} foo;
Fri, May 26, 3:14 PM
pcc added a comment to D33607: (NFC) Move summary-based opt before regular LTO..

If you just need the list of dead symbols, then there is no need to increase the scope of anything else. I would prefer to keep things as local as possible so that the flow of information is clearer.

Fri, May 26, 3:12 PM
dblaikie committed rL304042: Fix test broken by r304020.
Fix test broken by r304020
Fri, May 26, 3:11 PM
sanjoy added a comment to D33584: Remove a quadratic behavior in assert-enabled builds.

Today if the bb0 -> bb1 edge dominates some use of %cond then said use can be replaced with i1 true, but with your change that will no longer hold.

Today, any caller that asks if edge bb0->bb1 dominates some use of cond, it will assert :)

Fri, May 26, 3:09 PM
eugenis added a comment to D33607: (NFC) Move summary-based opt before regular LTO..

Why is it better than this change?

Fri, May 26, 3:07 PM
pcc added a comment to D33607: (NFC) Move summary-based opt before regular LTO..

Can you just move the block with the call to computeDeadSymbols like this patch does?
https://github.com/pcc/llvm-project/commit/1731b9179a7a448469e2977aaae142fab75c6bbd

Fri, May 26, 3:04 PM
efriedma added a comment to D21720: Unroll for uncountable loops.

The use of the "Force" bit here is still really confusing... we need a better way of expressing the profitability of unrolling.

Fri, May 26, 3:00 PM
dberlin added a comment to D33584: Remove a quadratic behavior in assert-enabled builds.

Removed the asserts. As Danny put it:

"Given LLVM defines edge dominance in a way that means non-unique edges never dominate their end, this is a waste of time."

In other words, there is no need for an assert here since it's not the case
that the answer would be wrong or would take more time to compute than for
unique edges. It's simply that the answer would always be non-dominance by
how domininance of edges is defined.

I'm not sure I agree with this. To be clear, say we have:

bb0:
  br i1 undef, label %bb1, label %bb1

bb1;
  ...

are you suggesting that dominates([bb0->bb1], bb1) will be false anyway, and there is no specific need to check isSingleEdge() at all?

Fri, May 26, 2:58 PM
davide committed rL304041: [Mips] Placate GCC's -Wmisleading-indentation. NFCI..
[Mips] Placate GCC's -Wmisleading-indentation. NFCI.
Fri, May 26, 2:56 PM
davide committed rL304040: [lib/LTO] Don't reinvent the code for switching linkage..
[lib/LTO] Don't reinvent the code for switching linkage.
Fri, May 26, 2:56 PM
davide closed D33582: [lib/LTO] Don't reinvent the code for switching linkage by committing rL304040: [lib/LTO] Don't reinvent the code for switching linkage..
Fri, May 26, 2:56 PM
craig.topper created D33608: [Analysis] Rewrite TotalMemInst counting in InstCount pass in a way that doesn't require reading back other Statistic variables.
Fri, May 26, 2:55 PM
eugenis added a comment to D33605: Provide an acccessor to get the Args of a ToolChain.

What's stopping anyone from removing this method as dead code?

Fri, May 26, 2:54 PM · Restricted Project
eugenis created D33607: (NFC) Move summary-based opt before regular LTO..
Fri, May 26, 2:52 PM
vitalybuka committed rL304039: [compiler-rt] Don't reset non-default user handler if allow_user_segv_handler….
[compiler-rt] Don't reset non-default user handler if allow_user_segv_handler…
Fri, May 26, 2:51 PM
vitalybuka closed D32457: [asan] Don't reset non-default user handler if allow_user_signal_handler is true. by committing rL304039: [compiler-rt] Don't reset non-default user handler if allow_user_segv_handler….
Fri, May 26, 2:51 PM
matze committed rL304038: LivePhysRegs: Rework constructor + documentation; NFC.
LivePhysRegs: Rework constructor + documentation; NFC
Fri, May 26, 2:51 PM
matze committed rL304036: LivePhysRegs: Add default for removeRegsInMask(Clobbers); NFC.
LivePhysRegs: Add default for removeRegsInMask(Clobbers); NFC
Fri, May 26, 2:51 PM
matze committed rL304037: LivePhysRegs: Doxygen cleanup; NFC.
LivePhysRegs: Doxygen cleanup; NFC
Fri, May 26, 2:51 PM
matze committed rL304035: MachineVerifier: Remove unused set; NFC.
MachineVerifier: Remove unused set; NFC
Fri, May 26, 2:51 PM
ahatanak created D33606: [Sema] Fix a crash-on-invalid when a template parameter list has a class definition or non-reference class type.
Fri, May 26, 2:47 PM
vitalybuka added a comment to D33600: Adjust sanitizers for FreeBSD 64-bit inode update.

Do we have public build bot for FreeBSD?

Fri, May 26, 2:46 PM
spatel accepted D33603: [SimplifyInst] Push commuted op checks for and/or of icmp further down to avoid duplicate work.

LGTM.

Fri, May 26, 2:42 PM
davidxl added a comment to D33577: CodeGen: BlockPlacement: Use Branching factor to choose between near equals..

It is basically a choice between a layout (exiting) that has 50% chance of not taking any branches , 25% of taking one branch, and 25% of taking more than one branches vs the new layout that has only 6.25% chance of taking zero branch and 93.75% of taking only one branch.

Fri, May 26, 2:39 PM
sgundapa added reviewers for D33605: Provide an acccessor to get the Args of a ToolChain: bkramer, eugenis.
Fri, May 26, 2:38 PM · Restricted Project