Feed All Stories

Today

dim added a comment to D33600: Adjust sanitizers for FreeBSD 64-bit inode update.

Do we have public build bot for FreeBSD?

Fri, May 26, 3:40 PM
msearles commandeered D33114: [AMDGPU] Turn on the new waitcnt insertion pass. Adjust tests..

Commandeering this revision; I have inherited it from the original author (kanarayan).

Fri, May 26, 3:37 PM
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
sgundapa added a reviewer for D33605: Provide an acccessor to get the Args of a ToolChain: cfe-commits.
Fri, May 26, 2:35 PM · Restricted Project
vsk updated the diff for D33305: [ubsan] Add a check for pointer overflow UB.

Ping.

Fri, May 26, 2:34 PM
sanjoy 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.

Fri, May 26, 2:22 PM
MatzeB added a comment to D33562: MachineLICM: Add new condition for hoisting of caller preserved registers.

Instead of introducing yet another target callback, how about some simple heuristic like MRI.hasOneDef(Reg) && !MRI.getUsedPhysRegsMask().test(Reg)[1] allowing hoisting up to the point of that definition (which you can find out with MRI.def_instr_begin(Reg) or similar).

Fri, May 26, 2:19 PM
sgundapa set the repository for D33605: Provide an acccessor to get the Args of a ToolChain to rL LLVM.
Fri, May 26, 2:14 PM · Restricted Project
eugenis accepted D32457: [asan] Don't reset non-default user handler if allow_user_signal_handler is true..

LGTM

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

Note: i haven't thought out whether the pred test it does in most places will actually give the right answer.
At one point, it tested whether the edge was unique and returned false, this got turned into the current assert.
You may have to add that back.

Fri, May 26, 2:13 PM
rnk added inline comments to D33575: [llvm-ar] Make llvm-lib behave more like the MSVC archiver.
Fri, May 26, 2:12 PM
sgundapa closed D29199: [Hexagon] Cleanup of unused function isCalleeSaveReg (NFC).

https://reviews.llvm.org/rL304034

Fri, May 26, 2:12 PM
martell added a comment to D33384: [libcxx] [libcxxabi] fix building with libc++ win32 threads for mingw-w64.

Why do we *need* to set it? Doesn't _WIN32_WINNT default to the current platform?

Not for mingw-w64, that wouldn't make much sense in general because of cross compiling.
It defaults to` 0x502` here which is a bump above Windows XP, which support was dropped for when MS officially dropped support for that platform.
https://github.com/mingw-w64/mingw-w64/blob/master/mingw-w64-headers/crt/_mingw.h.in#L225

Fri, May 26, 2:10 PM
sgundapa committed rL304034: [Hexagon] Cleanup of unused function isCalleeSaveReg (NFC).
[Hexagon] Cleanup of unused function isCalleeSaveReg (NFC)
Fri, May 26, 2:10 PM
vitalybuka updated the diff for D32457: [asan] Don't reset non-default user handler if allow_user_signal_handler is true..

Simplify return from main.

Fri, May 26, 2:10 PM
echristo added a reviewer for D33562: MachineLICM: Add new condition for hoisting of caller preserved registers: MatzeB.

Looks ok to me too, Matthias?

Fri, May 26, 2:09 PM
kzhuravl committed rL304033: Resubmit r303861..
Resubmit r303861.
Fri, May 26, 2:09 PM
vitalybuka added inline comments to D32457: [asan] Don't reset non-default user handler if allow_user_signal_handler is true..
Fri, May 26, 2:07 PM
vitalybuka updated the diff for D32457: [asan] Don't reset non-default user handler if allow_user_signal_handler is true..

Remove sigset_t

Fri, May 26, 2:07 PM
echristo added a comment to D33448: [CodeGen] Add thumb-mode to target-features for arm/thumb triples..

I'll hold off merging this patch until D33436 lands, which fixes a problem with mixed ARM/Thumb codegen

Fri, May 26, 2:06 PM
iteratee updated the diff for D33577: CodeGen: BlockPlacement: Use Branching factor to choose between near equals..

Add comments to the change summary about the global heuristic that we're approximating (maybe badly) by calculating the branch factor.

Fri, May 26, 2:04 PM
sgundapa added a reviewer for D33605: Provide an acccessor to get the Args of a ToolChain: kparzysz.
Fri, May 26, 2:04 PM · Restricted Project
sgundapa created D33605: Provide an acccessor to get the Args of a ToolChain.
Fri, May 26, 2:02 PM · Restricted Project
chandlerc added a comment to D33525: [ThinLTO] Migrate ThinLTOBitcodeWriter to the new PM..

(focusing on the LLVM side of this review for now)

Can you add an LLVM-based test? Can you add this to lib/Passes/PassRegistry.def?

Talked offline. Given the fact that BitcodeWriter (and possibly assembly writer?) is not registered either, it seems to be a larger issue that's out of the scope of this patch.

Fri, May 26, 1:59 PM
EricWF added a comment to D33384: [libcxx] [libcxxabi] fix building with libc++ win32 threads for mingw-w64.

Why do we *need* to set it? Doesn't _WIN32_WINNT default to the current platform?

Fri, May 26, 1:59 PM
eugenis added inline comments to D32457: [asan] Don't reset non-default user handler if allow_user_signal_handler is true..
Fri, May 26, 1:53 PM
vitalybuka committed rL304032: allow_user_segv_handler was already removed.
allow_user_segv_handler was already removed
Fri, May 26, 1:51 PM
pcc added inline comments to D33575: [llvm-ar] Make llvm-lib behave more like the MSVC archiver.
Fri, May 26, 1:51 PM
clayborg added inline comments to D32585: Implementation of remote packets for Trace data..
Fri, May 26, 1:45 PM
vitalybuka updated the diff for D32457: [asan] Don't reset non-default user handler if allow_user_signal_handler is true..

8 -> NSIG/8

Fri, May 26, 1:44 PM
rnk updated the diff for D33575: [llvm-ar] Make llvm-lib behave more like the MSVC archiver.
  • Preserve old member names when updating archives
Fri, May 26, 1:39 PM
MatzeB accepted D32563: Add LiveRangeShrink pass to shrink live range within BB..

Register class logic looks good to me with the nitpicks below addressed.

Fri, May 26, 1:39 PM
kzhuravl committed rL304031: Resubmit r303859 with test fixed..
Resubmit r303859 with test fixed.
Fri, May 26, 1:38 PM
craig.topper created D33604: [InstCombine] Pass a proper context instruction to all of the calls into InstSimplify.
Fri, May 26, 1:37 PM
anemet updated the summary of D33584: Remove a quadratic behavior in assert-enabled builds.
Fri, May 26, 1:33 PM
anemet updated the diff for D33584: Remove a quadratic behavior in assert-enabled builds.

Removed the asserts. As Danny put it:

Fri, May 26, 1:31 PM
vitalybuka updated the diff for D32457: [asan] Don't reset non-default user handler if allow_user_signal_handler is true..

Load asan with LD_PRELOAD

Fri, May 26, 1:29 PM
timshen added a comment to D33525: [ThinLTO] Migrate ThinLTOBitcodeWriter to the new PM..

(focusing on the LLVM side of this review for now)

Can you add an LLVM-based test? Can you add this to lib/Passes/PassRegistry.def?

Fri, May 26, 1:23 PM
timshen updated the diff for D33525: [ThinLTO] Migrate ThinLTOBitcodeWriter to the new PM..

Change the test case.

Fri, May 26, 1:21 PM
vsk updated the diff for D33588: Fix two sources of UB in __next_hash_pow2 (from __hash_table).

Thanks @EricWF for pointing me to the right place to add a test. I've tried to follow the style used by the existing tests. PTAL.

Fri, May 26, 1:20 PM
rnk updated the diff for D33575: [llvm-ar] Make llvm-lib behave more like the MSVC archiver.
  • Compute all member names up front
Fri, May 26, 1:18 PM
evstupac added a comment to D30552: Fix regressions cased by D29862.

How do you think which way we should follow?
Or we can leave regression as is as Solution Cost is better and therefore it is not a problem of newly implemented NarrowSearchSpaceByDeletingCostlyFormulas()?

Fri, May 26, 1:18 PM
marsupial added a comment to rL304020: DebugInfo: Do not emit empty CUs.

Seems this might have broken many bots.

Fri, May 26, 1:17 PM
d0k committed rL304030: Remove unused diagnostics. NFC..
Remove unused diagnostics. NFC.
Fri, May 26, 1:14 PM
evstupac added a comment to D21720: Unroll for uncountable loops.

PING

Fri, May 26, 1:11 PM
d0k committed rL304029: Make helper functions static. NFC..
Make helper functions static. NFC.
Fri, May 26, 1:09 PM
d0k committed rL304028: Make helper functions static. NFC..
Make helper functions static. NFC.
Fri, May 26, 1:08 PM
martell added a comment to rL304012: Enable __float128 for mingw for GCC compatibility and define….

@mati865 I will have a look at the weekend.
@rnk got it :) I also closed the corresponding bug report https://bugs.llvm.org/show_bug.cgi?id=30685

Fri, May 26, 1:06 PM
hiraditya added a comment to D32614: [GVNHoist] Fix: PR32821, add check for anticipability in case of infinite loops.

@dberlin
When SSAPRE inserts PHI (expression PHIs), it does so at places where (potentially) multiple expressions may merge. If a PHI has a bottom (⊥) entry, that means the expression is partially available.
The concept may work for GVN-Hoist to help factor out anticipability by working on inverted graph. If we insert an outgoing PHI (if I may), to a basic block with multiple successors, as instructions are hoisted upwards to a nearest common dominator.
And we start walking the CFG to figure out if any outgoing PHI has a ⊥, that means the expression is not anticipable in the basic block having that outgoing PHI.
To minimize the number of outgoing PHIs, we will only insert them for expressions with multiple occurrences.
This will help remove the need to check for reachability.

Fri, May 26, 1:01 PM
rnk added a comment to rL304012: Enable __float128 for mingw for GCC compatibility and define….

Make sure to also backport rL304013, it was intended to be part of this.

Fri, May 26, 12:59 PM
martell added a comment to D33384: [libcxx] [libcxxabi] fix building with libc++ win32 threads for mingw-w64.

@EricWF I believe your concern was that 0x600 was Vista.
I only updated this to the min required version to build.
https://github.com/mirror/mingw-w64/blob/master/mingw-w64-headers/include/fibersapi.h#L17

Fri, May 26, 12:56 PM
iteratee accepted D33562: MachineLICM: Add new condition for hoisting of caller preserved registers.

This looks fine to me.

Fri, May 26, 12:56 PM
gkistanova accepted D33502: [ZORG] Add more SystemZ builders.

LGTM

Fri, May 26, 12:53 PM · Restricted Project
martell retitled D33384: [libcxx] [libcxxabi] fix building with libc++ win32 threads for mingw-w64 from [libcxxabi] fixup bootstrapping for mingw-w64 to [libcxx] [libcxxabi] fix building with libc++ win32 threads for mingw-w64.
Fri, May 26, 12:52 PM
martell updated the diff for D33384: [libcxx] [libcxxabi] fix building with libc++ win32 threads for mingw-w64.

updated to just contain win32 thread api fix

Fri, May 26, 12:51 PM
nandini12396 updated the diff for D33163: [Polly] Added the list of Instructions to output in ScopInfo pass.

Addressed comments given by Tobias Sir.

Fri, May 26, 12:50 PM
craig.topper updated the diff for D33603: [SimplifyInst] Push commuted op checks for and/or of icmp further down to avoid duplicate work.

Fix a compile failure from when I inlined simplifyPossiblyCastedAndOrOfICmps

Fri, May 26, 12:45 PM
marsupial committed rL304027: Fix the ManagedStatic list ordering when using DynamicLibrary….
Fix the ManagedStatic list ordering when using DynamicLibrary…
Fri, May 26, 12:43 PM
marsupial closed D33581: Fix the ManagedStatic list ordering when using DynamicLibrary::addPermanentLibrary. by committing rL304027: Fix the ManagedStatic list ordering when using DynamicLibrary….
Fri, May 26, 12:43 PM
hiraditya added a comment to D24805: [GVNSink] Initial GVNSink prototype.

Thanks Danny,

I've committed the patch after changing from std::stable_sort to std::sort (I didn't need it, I was being paranoid debugging a heisenbug). This was good timing as today is my last day at ARM and in a couple of hours I will lose access to my development machine! :)

Thanks for your last reply; I now, finally, have got it! I spent yesterday prototyping and have something that conceptually works. It'll need a lot more work though. Watch this space ;)

Cheers,

James

Fri, May 26, 12:42 PM
craig.topper created D33603: [SimplifyInst] Push commuted op checks for and/or of icmp further down to avoid duplicate work.
Fri, May 26, 12:42 PM