Commit
8cbcd2f484a2bc6720d9fd66b71aeaf50a49bc70
by listmail[IndVars] Eliminate loop exits with equivalent exit counts We can end up with two loop exits whose exit counts are equivalent, but whose textual representation is different and non-obvious. For the sub-case where we have a series of exits which dominate one another (common), eliminate any exits which would iterate *after* a previous exit on the exiting iteration. As noted in the TODO being removed, I'd always thought this was a good idea, but I've now seen this in a real workload as well. Interestingly, in review, Nikita pointed out there's let another oppurtunity to leverage SCEV's reasoning. If we kept track of the min of dominanting exits so far, we could discharge exits with EC >= MDE. This is less powerful than the existing transform (since later exits aren't considered), but potentially more powerful for any case where SCEV can prove a >= b, but neither a == b or a > b. I don't have an example to illustrate that oppurtunity, but won't be suprised if we find one and return to handle that case as well. Differential Revision: https://reviews.llvm.org/D69009 llvm-svn: 375379
|
 | llvm/test/Transforms/IndVarSimplify/loop-predication.ll |
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
 | llvm/test/Transforms/IndVarSimplify/pr38674.ll |
 | llvm/test/Transforms/IndVarSimplify/eliminate-exit.ll |
Commit
e884843d7839043308640952ad84659619eaca44
by listmail[IndVars] Add a todo to reflect a further oppurtunity identified in D69009 Nikita pointed out an oppurtunity, might as well document it in the code. llvm-svn: 375380
|
 | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |
Commit
e78414622ddbc4f696d1d16ef8db918f732a0a88
by craig.topper[X86] Check Subtarget.hasSSE3() before calling shouldUseHorizontalOp and emitting X86ISD::FHADD in LowerUINT_TO_FP_i64. This was a regression from r375341. Fixes PR43729. llvm-svn: 375381
|
 | llvm/test/CodeGen/X86/scalar-int-to-fp.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
3839b57f7306bdca794bd033f36bff02f68cf0f0
by jdoerfert[Attributor] Teach AANoCapture to use information in-flight more aggressively AAReturnedValues, AAMemoryBehavior, and AANoUnwind, can provide information that helps during the tracking or even justifies no-capture. We now use this information and enable no-capture in some test cases designed a long while a ago for these cases. llvm-svn: 375382
|
 | llvm/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll |
 | llvm/test/Transforms/FunctionAttrs/arg_nocapture.ll |
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/test/Transforms/FunctionAttrs/nocapture.ll |
 | llvm/test/Transforms/FunctionAttrs/nonnull.ll |
 | llvm/test/Transforms/FunctionAttrs/arg_returned.ll |
Commit
9d5ad5e45fe40a24ceb11d6f9b046d8077c90778
by jdoerfert[Attributor][FIX] Silence sign-compare warning llvm-svn: 375384
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |