[Polly] Update isl to isl-0.27 (#177776)
Fixes: #177527
Updated test cases:
* CodeGen/OpenMP/matmul-parallel.ll, ScheduleOptimizer/pattern-matching-based-opts.ll
Before the update, ISL bailed out the dependency computation due to
hitting the max operation limit. The commit
https://repo.or.cz/isl.git/commit/4bdfe2567715c5d1a8287c07d8685eb3db281e32
seems to have reduced the complexity needed of the dependency
computation, thus now being able to recognize some loops as parallel.
The tests were checking that the outer loop is not parallel, but some
inner loops can be parallized, particularly the array packing loops.
* DeLICM/reduction_looprotate_hoisted.ll
changes in how isl generates expressions
* ScheduleOptimizer/pattern-matching-based-opts_5.ll
changes in how isl generates expressions, and AST node changes
bar syntax and only print input if different from output.
Breaks update_test_checks Function Attrs comment check in the rare
case where the modes mismatch.
IR: Promote "denormal-fp-math" to a first class attribute
Convert "denormal-fp-math" and "denormal-fp-math-f32" into a first
class denormal_fpenv attribute. Previously the query for the effective
deormal mode involved two string attribute queries with parsing. I'm
introducing more uses of this, so it makes sense to convert this
to a more efficient encoding. The old representation was also awkward
since it was split across two separate attributes. The new encoding
just stores the default and float modes as bitfields, largely avoiding
the need to consider if the other mode is set.
The syntax in the common cases looks like this:
`denormal_fpenv(preservesign,preservesign)`
`denormal_fpenv(float: preservesign,preservesign)`
`denormal_fpenv(dynamic,dynamic float: preservesign,preservesign)`
I wasn't sure about reusing the float type name instead of adding a
new keyword. It's parsed as a type but only accepts float. I'm also
debating switching the name to subnormal to match the current
[18 lines not shown]
X86: Fix VSCALE insert element crash in codegen (#177705)
When inserting elements into <vscale x N x i64> scalable vectors, the X86 backend now returns InstructionCost::getInvalid() instead of panicking.
Fixes #176823
InstCombine: Use SimplifyDemandedFPClass epilog helper function for fma (#176017)
NFC refactor to use shared code for fold to constant or set fast math
flags.
[InstCombine] Mark select in fdiv transforms with unknown profile (#177759)
As part of the profcheck effort we are trying to explicitly annotate
select instructions where we cannot reasonably synthesize profile
information as having an unknown profile. This does that for the case
introduced in 0993d69bc35cfdd4f3a904a603701e66906e8987.
Reapply "[VPlan] Move VDef subclass ID to VPRecipeBase (NFC). (#174282)"
Move SubclassID to VPRecipeBase, and store VPRecipeBase directly in
VPRecipeValue, instead of VPDef. This allows for some additional
simplifications and VPDef now just holds various helpers to deal with
removing and adding VPValues.
This reverts commit 16395da0ff577750571b99fe28281ce6fb6a3ae8.
PR: https://github.com/llvm/llvm-project/pull/174282