Page MenuHomePhabricator
Feed Advanced Search

Fri, Apr 19

fhahn committed rGb340497f7640: [LTO] Add plumbing to save stats during LTO on Darwin. (authored by fhahn).
[LTO] Add plumbing to save stats during LTO on Darwin.
Fri, Apr 19, 5:39 AM
fhahn committed rC358753: [LTO] Add plumbing to save stats during LTO on Darwin..
[LTO] Add plumbing to save stats during LTO on Darwin.
Fri, Apr 19, 5:39 AM
fhahn committed rL358753: [LTO] Add plumbing to save stats during LTO on Darwin..
[LTO] Add plumbing to save stats during LTO on Darwin.
Fri, Apr 19, 5:39 AM
fhahn closed D60516: [LTO] Add plumbing to save stats during LTO on Darwin..
Fri, Apr 19, 5:38 AM · Restricted Project, Restricted Project
fhahn added a comment to D60516: [LTO] Add plumbing to save stats during LTO on Darwin..

LGTM with a minor fix needed below.

Darwin still uses the old LTO API, which is why the lto Config based handling in the new LTO API (LTO.h/LTO.cpp) are not being used on this path.

Fri, Apr 19, 4:45 AM · Restricted Project, Restricted Project

Wed, Apr 17

fhahn created D60839: [ScheduleDAGInstrs] Compute topological ordering on demand..
Wed, Apr 17, 2:52 PM · Restricted Project
fhahn committed rG893aea58ea5e: [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size. (authored by fhahn).
[LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size.
Wed, Apr 17, 8:57 AM
fhahn added a comment to D60265: [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size..

Right, I should have said something here. Without D60266, there was no change in code size on the set of benchmarks, most likely because loop-rotate is not run and they are not in the required form for unrolling to happen.

Ok, cool!

I guess it would be sufficient to drop minsize from the attribute list, assuming minsize always come with optsize?

minsize only comes with optsize when your function is effectively -Oz. If your function is -Os, it will only have optsize.

So, I would keep them both since -Oz behaviour is more important here (IMO). If you want to test both I guess you'll have to duplicate the test, sadly.

Wed, Apr 17, 8:56 AM · Restricted Project
fhahn committed rL358586: [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size..
[LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size.
Wed, Apr 17, 8:55 AM
fhahn closed D60265: [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size..
Wed, Apr 17, 8:55 AM · Restricted Project
fhahn committed rG258a425c69f0: [ScheduleDAGRRList] Recompute topological ordering on demand. (authored by fhahn).
[ScheduleDAGRRList] Recompute topological ordering on demand.
Wed, Apr 17, 8:04 AM
fhahn committed rL358583: [ScheduleDAGRRList] Recompute topological ordering on demand..
[ScheduleDAGRRList] Recompute topological ordering on demand.
Wed, Apr 17, 8:03 AM
fhahn closed D60125: [ScheduleDAGRRList] Recompute topological ordering on demand..
Wed, Apr 17, 8:03 AM · Restricted Project
fhahn added a comment to D60516: [LTO] Add plumbing to save stats during LTO on Darwin..

ping

Wed, Apr 17, 6:18 AM · Restricted Project, Restricted Project

Tue, Apr 16

fhahn added inline comments to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch..
Tue, Apr 16, 11:59 AM · Restricted Project

Mon, Apr 15

fhahn added a comment to D59918: [Attributor] Pass infrastructure and fixpoint framework.

I haven't been through the details yet, but I have a few high-level thoughts.

Mon, Apr 15, 2:16 PM · Restricted Project
fhahn created D60690: [AArch64] Skip mask checks for masks with an odd number of elements..
Mon, Apr 15, 5:53 AM · Restricted Project

Thu, Apr 11

fhahn added a parent revision for D60582: [IPSCCP] Add general integer range support.: D60581: [ValueLattice] Add forceconstant, for SCCP..
Thu, Apr 11, 2:08 PM · Restricted Project
fhahn added a child revision for D60581: [ValueLattice] Add forceconstant, for SCCP.: D60582: [IPSCCP] Add general integer range support..
Thu, Apr 11, 2:08 PM · Restricted Project
fhahn added a comment to D60582: [IPSCCP] Add general integer range support..

For now I would appreciate any high-level input, like is this the right place to do this or should we have a separate range propagation pass? I think we might be able to use this as a replacement for (parts) of CorrelatedValuePropagation, to avoid a few instances of recursively walking the IR.

Thu, Apr 11, 2:08 PM · Restricted Project
fhahn added a comment to D60581: [ValueLattice] Add forceconstant, for SCCP..

I'm not necessarily sure I like this. It's simply spreading in a general framework a concept that shouldn't exist to begin with. I'd rather remove forced constant from SCCP, even though it might result in us losing some optimization power.

Thu, Apr 11, 2:08 PM · Restricted Project
fhahn created D60582: [IPSCCP] Add general integer range support..
Thu, Apr 11, 2:00 PM · Restricted Project
fhahn created D60581: [ValueLattice] Add forceconstant, for SCCP..
Thu, Apr 11, 1:55 PM · Restricted Project
fhahn added inline comments to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch..
Thu, Apr 11, 11:29 AM · Restricted Project
fhahn added inline comments to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch..
Thu, Apr 11, 10:33 AM · Restricted Project
fhahn added a comment to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch..

Also how does this compare with the existing InductionDescriptor (http://llvm.org/doxygen/classllvm_1_1InductionDescriptor.html)?

Thu, Apr 11, 9:21 AM · Restricted Project
fhahn added a reviewer for D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch.: fhahn.
Thu, Apr 11, 9:06 AM · Restricted Project
fhahn added a comment to D60565: [LOOPINFO] Extend Loop object to add utilities to get the loop bounds, step, induction variable, and guard branch..

I've left a first pass of comments. I would recommend splitting off the parts that are not directly required for getBounds, like getGuard, as those seem orthogonal. It seems there are a lot of checks that ScalarEvolution can already take care of and IMO it would be better to require ScalarEvolution for those things.

Thu, Apr 11, 9:06 AM · Restricted Project

Wed, Apr 10

fhahn added a comment to D60536: [ConstantRange] [0, 1) divided by non-empty ranges is [0, 1)..

The main problem this patch addresses is the RHS == full-set case, where we exit early.

Wed, Apr 10, 1:08 PM · Restricted Project
fhahn planned changes to D59995: [LV] Exclude loop-invariant inputs from scalar cost computation..

Thanks for your comments Ayal! I'll update the patch in a bit.

Wed, Apr 10, 1:03 PM · Restricted Project
fhahn created D60536: [ConstantRange] [0, 1) divided by non-empty ranges is [0, 1)..
Wed, Apr 10, 1:03 PM · Restricted Project
fhahn updated the summary of D60516: [LTO] Add plumbing to save stats during LTO on Darwin..
Wed, Apr 10, 8:28 AM · Restricted Project, Restricted Project
fhahn retitled D60516: [LTO] Add plumbing to save stats during LTO on Darwin. from [LTO] Add plumbing to save stats during LTO on MacOS. to [LTO] Add plumbing to save stats during LTO on Darwin..
Wed, Apr 10, 8:28 AM · Restricted Project, Restricted Project
fhahn created D60516: [LTO] Add plumbing to save stats during LTO on Darwin..
Wed, Apr 10, 8:23 AM · Restricted Project, Restricted Project
fhahn accepted D60336: [test-suite] litsupport/modules/perf.py: store profile filename in context.profilefile.

Looks like a straight-forward fix, LGTM

Wed, Apr 10, 5:25 AM · Restricted Project
fhahn accepted D60215: [test-suite] There is no such thing as CMAKE_C_CFLAGS, it's CMAKE_C_FLAGS.

Looks like a straight forward fix, LGTM as there is no CMAKE_C_CFLAGS variable.

Wed, Apr 10, 5:09 AM · Restricted Project
fhahn committed rG83443c9a9ec7: [ScheduleDAG] Add statistics for maintaining the topological order. (authored by fhahn).
[ScheduleDAG] Add statistics for maintaining the topological order.
Wed, Apr 10, 2:06 AM
fhahn committed rL358058: [ScheduleDAG] Add statistics for maintaining the topological order..
[ScheduleDAG] Add statistics for maintaining the topological order.
Wed, Apr 10, 2:01 AM
fhahn closed D60187: [ScheduleDAG] Add statistics for maintaining the topological order..
Wed, Apr 10, 2:01 AM · Restricted Project
fhahn committed rGdb1a69c2504f: [VPLAN] Minor improvement to testing and debug messages. (authored by fhahn).
[VPLAN] Minor improvement to testing and debug messages.
Wed, Apr 10, 1:17 AM
fhahn committed rL358056: [VPLAN] Minor improvement to testing and debug messages..
[VPLAN] Minor improvement to testing and debug messages.
Wed, Apr 10, 1:16 AM
fhahn closed D59952: [VPLAN] Minor improvement to testing and debug messages..
Wed, Apr 10, 1:16 AM · Restricted Project

Tue, Apr 9

fhahn added a comment to D59952: [VPLAN] Minor improvement to testing and debug messages..

Thanks Francesco! I think the test looks good now. If you need someone to commit it, just let me know.

Tue, Apr 9, 9:29 AM · Restricted Project

Thu, Apr 4

fhahn added a comment to D59065: [BasicAA] Simplify inttoptr(and(ptrtoint(X), C)) to X, if C preserves all significant bits..

Ah thanks, I was missing the global nature of physical pointers. I couldn't find this described anywhere (besides some of those things mentioned at a tutorial at EuroLLVM). If this is not described anywhere, do you think it would make sense to add it to the AliasAnalysis documentation page, for example?

Yes, I think we should add this to the AA docs. I think the best reference for a consistent LLVM memory model is https://sf.snu.ac.kr/publications/llvmtwin.pdf .

Thu, Apr 4, 1:31 PM · Restricted Project
fhahn added a comment to D60144: [SCEV] Add option to forget everything in SCEV..

Here are the times I got for compiling the aggregated bitcode files for clang and a few others. Before is ToT, After is with -forget-scev-loop-unroll=true
File Before (s) After (s)
clang-9.bc 7267.91 6639.14
llvm-as.bc 194.12 194.12
llvm-dis.bc 62.50 62.50
opt.bc 1855.85 1857.53

The current test I have is not publishable, I'm still trying to get one.
In the mean time, the above results might motivate having this enabled by default.

Thu, Apr 4, 1:28 PM · Restricted Project
fhahn planned changes to D59050: [InterleavedAccessAnalysis] Use unordered_map to avoid tombstone insertion..

I'm currently prototyping a version of DenseMap, that uses bit vectors to mark empty/tombstone slots to circumvent the issue. There are some scenarios where this could potentially also improve runtime performance, at the cost of 2 bits per slot. What do you think?

Thu, Apr 4, 1:09 PM · Restricted Project
fhahn added a comment to D60266: [LoopUnroll] Rotate loop, when optimizing for size and can fully unroll a loop..

Why do we need to rotate the loop before unrolling? llvm::UnrollLoop currently refuses to unroll loops where the latch is an unconditional branch, but that isn't a fundamental limitation, as far as I can tell. We already support unrolling loops where the latch is not the exit branch; allowing loops where the latch doesn't exit at all is a minor extension. Granted, it might be more efficient to explicitly rotate the loop before unrolling, so we don't clone quite so much code.

Thu, Apr 4, 1:04 PM · Restricted Project
fhahn added inline comments to D60266: [LoopUnroll] Rotate loop, when optimizing for size and can fully unroll a loop..
Thu, Apr 4, 10:00 AM · Restricted Project
fhahn added inline comments to D60125: [ScheduleDAGRRList] Recompute topological ordering on demand..
Thu, Apr 4, 10:00 AM · Restricted Project
fhahn updated the diff for D60125: [ScheduleDAGRRList] Recompute topological ordering on demand..

Fix order whenever it is queried.

Thu, Apr 4, 9:53 AM · Restricted Project
fhahn added a comment to D60265: [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size..

LGTM. Just a couple little comments, but none of them are critical:

  • In D60266 you have some code size numbers; it would be nice to have something similar here.
Thu, Apr 4, 9:23 AM · Restricted Project
fhahn added a child revision for D60265: [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size.: D60266: [LoopUnroll] Rotate loop, when optimizing for size and can fully unroll a loop..
Thu, Apr 4, 7:11 AM · Restricted Project
fhahn added a parent revision for D60266: [LoopUnroll] Rotate loop, when optimizing for size and can fully unroll a loop.: D60265: [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size..
Thu, Apr 4, 7:11 AM · Restricted Project
fhahn created D60266: [LoopUnroll] Rotate loop, when optimizing for size and can fully unroll a loop..
Thu, Apr 4, 7:11 AM · Restricted Project
fhahn created D60265: [LoopUnroll] Allow unrolling if the unrolled size does not exceed loop size..
Thu, Apr 4, 7:08 AM · Restricted Project

Wed, Apr 3

fhahn added a comment to D60133: [DAGCombiner] Improve detection of unmergable stores, based on type size (WIP).

It's not sufficient to check if you can merge two stores into a valid node; there are backends where you need 4 or more to get a legal merged store.

If you look at target-specific implementations of CanMergeStoresTo it essentially serves as a context-specific find maximum store which is what we need here. If you massage that interface a bit you can fold most of this check in there.

Wed, Apr 3, 2:55 PM · Restricted Project
fhahn added a comment to D59065: [BasicAA] Simplify inttoptr(and(ptrtoint(X), C)) to X, if C preserves all significant bits..

Ah thanks, together with @aqjune 's response, I think I now know what I was missing. If we have something like

int8_t* obj1 = malloc(4);
int8_t* obj2 = malloc(4);
int p = (intptr_t)(obj1 + 4);
 
if (p != (intptr_t) obj2) return;
  
*(int8_t*)(intptr_t)(obj1 + 4) = 0;   // <- here we alias ob1 and obj2?

I thought the information obtained via the control flow, p aliases both obj1 and obj2, is limited to the uses of p, but do I understand correctly that this is not the case and the information leaks to all equivalent expressions (that is for the snippet above, without GVN or any common code elimination)?

Yes. In the abstract LLVM machine pointers have provenance and integers don't. All integers with the same bitwise value are equivalent (can be replaced one for another), but bitwise identical pointers are not necessarily equivalent. This lets us do aggressive optimization on integers while still keeping a strong (ish) memory model.

A consequence of this is that when you convert (intptr_t)(obj1 + 4) back to a pointer, the new pointer's provenance includes all pointers whose bitwise value could have been obj1 + 4.

Wed, Apr 3, 2:53 PM · Restricted Project
fhahn added inline comments to D60125: [ScheduleDAGRRList] Recompute topological ordering on demand..
Wed, Apr 3, 1:25 PM · Restricted Project
fhahn added inline comments to D60125: [ScheduleDAGRRList] Recompute topological ordering on demand..
Wed, Apr 3, 2:47 AM · Restricted Project
fhahn created D60187: [ScheduleDAG] Add statistics for maintaining the topological order..
Wed, Apr 3, 2:29 AM · Restricted Project
fhahn updated the diff for D60125: [ScheduleDAGRRList] Recompute topological ordering on demand..

Add comment and make even lazier.

Wed, Apr 3, 2:21 AM · Restricted Project

Tue, Apr 2

fhahn added a comment to D60144: [SCEV] Add option to forget everything in SCEV..

Out of curiosity, would it be possible to provide a .bc file of such a program? Maybe there is some common structure where forgetting everything is faster or some heuristic we can use.

Tue, Apr 2, 12:40 PM · Restricted Project
fhahn added inline comments to D60125: [ScheduleDAGRRList] Recompute topological ordering on demand..
Tue, Apr 2, 12:37 PM · Restricted Project
fhahn created D60133: [DAGCombiner] Improve detection of unmergable stores, based on type size (WIP).
Tue, Apr 2, 8:45 AM · Restricted Project
fhahn planned changes to D59722: [ScheduleDAG] Avoid unnecessary recomputation of topological order..

After a bit more benchmarking, I think this patch makes things slightly worse in the general case. I've put up a patch that updates ScheduleDAGRRList to update the topological order on demand, D60125, which gives small, but stable improvements on CTMark. I have to revisit this patch and see how we can deal with extreme cases, without making things worse in the general case.

Tue, Apr 2, 6:26 AM · Restricted Project
fhahn created D60125: [ScheduleDAGRRList] Recompute topological ordering on demand..
Tue, Apr 2, 6:25 AM · Restricted Project

Mon, Apr 1

fhahn added a comment to D59065: [BasicAA] Simplify inttoptr(and(ptrtoint(X), C)) to X, if C preserves all significant bits..

For instance:

// Let's say we know malloc(64) will always return a pointer that is 8 byte
// aligned.

int8* ptr0 = malloc(64);
int8* ptr1 = malloc(64);

int8* ptr0_end = ptr0 + 64;

// I'm not sure if this comparison is well defined in C++, but it is well
// defined in LLVM IR:
if (ptr0_end != ptr1) return;

intptr ptr0_end_i = (intptr)ptr0_end;

intptr ptr0_end_masked = ptr0_end_i & -8;

// I think the transform being added in this comment will fire below since it is
// doing inttoptr(and(ptrtoint(ptr0_end), -8)).

int8* aliases_ptr0_and_ptr1 = (int8*)ptr0_end_masked;

Right now aliases_ptr0_and_ptr1 aliases both ptr0 and ptr1 (we can GEP backwards from it to access ptr0 and forwards from it to access ptr1). But if we replace it with ptr0_end then it can be used to access ptr0 only.

Mon, Apr 1, 5:46 AM · Restricted Project

Sun, Mar 31

fhahn added a comment to D59065: [BasicAA] Simplify inttoptr(and(ptrtoint(X), C)) to X, if C preserves all significant bits..

Thanks for taking a look!

Sun, Mar 31, 2:11 PM · Restricted Project

Fri, Mar 29

fhahn updated the diff for D59065: [BasicAA] Simplify inttoptr(and(ptrtoint(X), C)) to X, if C preserves all significant bits..

I am also not entirely sure how control dependencies could add new underlying objects with this patch

Please read this https://bugs.llvm.org/show_bug.cgi?id=34548

Fri, Mar 29, 3:19 PM · Restricted Project
fhahn updated subscribers of D59065: [BasicAA] Simplify inttoptr(and(ptrtoint(X), C)) to X, if C preserves all significant bits..
Fri, Mar 29, 11:12 AM · Restricted Project
fhahn created D59995: [LV] Exclude loop-invariant inputs from scalar cost computation..
Fri, Mar 29, 8:05 AM · Restricted Project
fhahn committed rG9b41a7320dc6: Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock." (authored by fhahn).
Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock."
Fri, Mar 29, 7:10 AM
fhahn added a reverting change for rG2b85de438326: Revert Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock.": rG9b41a7320dc6: Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock.".
Fri, Mar 29, 7:10 AM
fhahn committed rL357257: Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock.".
Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock."
Fri, Mar 29, 7:10 AM

Thu, Mar 28

fhahn committed rG2b85de438326: Revert Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock." (authored by fhahn).
Revert Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock."
Thu, Mar 28, 5:22 PM
fhahn committed rL357227: Revert Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock.".
Revert Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock."
Thu, Mar 28, 5:22 PM
fhahn committed rG64cccfcc72c4: Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock." (authored by fhahn).
Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock."
Thu, Mar 28, 4:11 PM
fhahn added a reverting change for rGc87869ebea00: Revert [DSE] Preserve basic block ordering using OrderedBasicBlock.: rG64cccfcc72c4: Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock.".
Thu, Mar 28, 4:11 PM
fhahn committed rL357222: Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock.".
Recommit "[DSE] Preserve basic block ordering using OrderedBasicBlock."
Thu, Mar 28, 4:11 PM
fhahn committed rG45682fd6332c: [LSR] Fix signed overflow in GenerateCrossUseConstantOffsets. (authored by fhahn).
[LSR] Fix signed overflow in GenerateCrossUseConstantOffsets.
Thu, Mar 28, 3:17 PM
fhahn committed rL357217: [LSR] Fix signed overflow in GenerateCrossUseConstantOffsets..
[LSR] Fix signed overflow in GenerateCrossUseConstantOffsets.
Thu, Mar 28, 3:16 PM
fhahn closed D59218: [LSR] Fix signed overflow in GenerateCrossUseConstantOffsets..
Thu, Mar 28, 3:16 PM · Restricted Project
fhahn added a comment to D59952: [VPLAN] Minor improvement to testing and debug messages..

Yep, I agree on that we should keep the stress testing mechanism. It will be very useful to make sure that the construction and predication (and maybe other transformation) are robust enough since we can run it on loop nests that are not necessarily vectorizable.
Something important, though, is that we shouldn't use this mechanism to bypass legality or pragma simd requirements to vectorize a loop, i.e., we shouldn't use it to generate actual vector code.
What are you trying to achieve, Francesco?

Thu, Mar 28, 1:41 PM · Restricted Project
fhahn committed rGc87869ebea00: Revert [DSE] Preserve basic block ordering using OrderedBasicBlock. (authored by fhahn).
Revert [DSE] Preserve basic block ordering using OrderedBasicBlock.
Thu, Mar 28, 1:35 PM
fhahn committed rL357211: Revert [DSE] Preserve basic block ordering using OrderedBasicBlock..
Revert [DSE] Preserve basic block ordering using OrderedBasicBlock.
Thu, Mar 28, 1:35 PM
fhahn committed rGc0bfd37d385c: [DSE] Preserve basic block ordering using OrderedBasicBlock. (authored by fhahn).
[DSE] Preserve basic block ordering using OrderedBasicBlock.
Thu, Mar 28, 1:05 PM
fhahn committed rL357208: [DSE] Preserve basic block ordering using OrderedBasicBlock..
[DSE] Preserve basic block ordering using OrderedBasicBlock.
Thu, Mar 28, 1:05 PM
fhahn closed D59789: [DSE] Preserve basic block ordering using OrderedBasicBlock..
Thu, Mar 28, 1:05 PM · Restricted Project
fhahn committed rG6c3024368c3a: [MemDepAnalysis] Allow caller to pass in an OrderedBasicBlock. (authored by fhahn).
[MemDepAnalysis] Allow caller to pass in an OrderedBasicBlock.
Thu, Mar 28, 12:17 PM
fhahn committed rL357206: [MemDepAnalysis] Allow caller to pass in an OrderedBasicBlock..
[MemDepAnalysis] Allow caller to pass in an OrderedBasicBlock.
Thu, Mar 28, 12:17 PM
fhahn closed D59788: [MemDepAnalysis] Allow caller to pass in an OrderedBasicBlock..
Thu, Mar 28, 12:17 PM · Restricted Project
fhahn updated the diff for D59218: [LSR] Fix signed overflow in GenerateCrossUseConstantOffsets..

Fix calculation: use signed right shift to divide by 2 with round to -inf and
add 1 for negative results where one value is odd and the other even to get
round to 0 behavior. Proof: https://rise4fun.com/Alive/Plqc

Thu, Mar 28, 12:08 PM · Restricted Project
fhahn added reviewers for D59952: [VPLAN] Minor improvement to testing and debug messages.: sguggill, dcaballe.

Thanks Francesco. I think we can only remove the arbitrary picking of VF = 4 with VPlanStressTest. I think we still need the other parts for testing, to build VPlans for loops without the pragma, which are then not vectorized.

Thu, Mar 28, 11:57 AM · Restricted Project
fhahn added a comment to D59065: [BasicAA] Simplify inttoptr(and(ptrtoint(X), C)) to X, if C preserves all significant bits..

ping

Thu, Mar 28, 9:05 AM · Restricted Project
fhahn added a comment to D57598: [VPLAN] Determine Vector Width programmatically..

Thanks Francesco!

Thu, Mar 28, 3:41 AM · Restricted Project
fhahn committed rGe21ed594d8ab: [VPlan] Determine Vector Width programmatically. (authored by fhahn).
[VPlan] Determine Vector Width programmatically.
Thu, Mar 28, 3:37 AM
fhahn committed rL357156: [VPlan] Determine Vector Width programmatically..
[VPlan] Determine Vector Width programmatically.
Thu, Mar 28, 3:35 AM
fhahn closed D57598: [VPLAN] Determine Vector Width programmatically..
Thu, Mar 28, 3:35 AM · Restricted Project

Wed, Mar 27

fhahn added inline comments to D57598: [VPLAN] Determine Vector Width programmatically..
Wed, Mar 27, 2:34 PM · Restricted Project
fhahn added a comment to D59788: [MemDepAnalysis] Allow caller to pass in an OrderedBasicBlock..
In D59788#1444919, @rnk wrote:

@rnk is there any chance you still have the full reproducer? I did not manage to reproduce the long time spent in DSE with the snippet above and I cannot share the reproducer I have unfortunately :(

Try this bitcode I attached in the tracker:
https://bugs.llvm.org/attachment.cgi?id=21689

This is the time report I see for it:

$ opt -time-passes -O2 longbbinit.bc -o NUL
===-------------------------------------------------------------------------===
                      ... Pass execution timing report ...
===-------------------------------------------------------------------------===
  Total Execution Time: 16.4531 seconds (16.4770 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   9.8281 ( 64.8%)   1.2188 ( 95.1%)  11.0469 ( 67.1%)  11.0376 ( 67.0%)  Dead Store Elimination
   1.7344 ( 11.4%)   0.0000 (  0.0%)   1.7344 ( 10.5%)   1.6974 ( 10.3%)  Global Value Numbering
   0.6563 (  4.3%)   0.0156 (  1.2%)   0.6719 (  4.1%)   0.6795 (  4.1%)  Function Integration/Inlining
   0.3750 (  2.5%)   0.0000 (  0.0%)   0.3750 (  2.3%)   0.3846 (  2.3%)  Value Propagation
   0.3750 (  2.5%)   0.0000 (  0.0%)   0.3750 (  2.3%)   0.3743 (  2.3%)  Value Propagation #2
   0.2344 (  1.5%)   0.0156 (  1.2%)   0.2500 (  1.5%)   0.2515 (  1.5%)  Bitcode Writer

I'm not sure it's the exact issue you're looking at here, though.

Wed, Mar 27, 2:28 PM · Restricted Project