[all-commits] [llvm/llvm-project] 7ea46a: Revert "[AssumeBundles] Use operand bundles to enc...
Roman Lebedev via All-commits
all-commits at lists.llvm.org
Sat Jul 4 13:50:56 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 7ea46aee3670981827c04df89b2c3a1cbdc7561b
https://github.com/llvm/llvm-project/commit/7ea46aee3670981827c04df89b2c3a1cbdc7561b
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2020-07-04 (Sat, 04 Jul 2020)
Changed paths:
M clang/lib/CodeGen/CodeGenFunction.cpp
M clang/test/CodeGen/align_value.cpp
M clang/test/CodeGen/alloc-align-attr.c
M clang/test/CodeGen/assume-aligned-and-alloc-align-attributes.c
M clang/test/CodeGen/builtin-align-array.c
M clang/test/CodeGen/builtin-align.c
M clang/test/CodeGen/builtin-assume-aligned.c
M clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-lvalue.cpp
M clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp
M clang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function-variable.cpp
M clang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function.cpp
M clang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function-two-params.cpp
M clang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function.cpp
M clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp
M clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp
M clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp
M clang/test/CodeGen/catch-alignment-assumption-openmp.cpp
M clang/test/CodeGen/non-power-of-2-alignment-assumptions.c
M clang/test/OpenMP/simd_codegen.cpp
M clang/test/OpenMP/simd_metadata.c
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp
M llvm/include/llvm/IR/IRBuilder.h
M llvm/lib/Analysis/AssumeBundleQueries.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
M llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
M llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
M llvm/test/Transforms/Inline/align.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/PhaseOrdering/inlining-alignment-assumptions.ll
M llvm/test/Verifier/assume-bundles.ll
M llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
Log Message:
-----------
Revert "[AssumeBundles] Use operand bundles to encode alignment assumptions"
Assume bundle can have more than one entry with the same name,
but at least AlignmentFromAssumptionsPass::extractAlignmentInfo() uses
getOperandBundle("align"), which internally assumes that it isn't the
case, and happily crashes otherwise.
Minimal reduced reproducer: run `opt -alignment-from-assumptions` on
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%0 = type { i64, %1*, i8*, i64, %2, i32, %3*, i8* }
%1 = type opaque
%2 = type { i8, i8, i16 }
%3 = type { i32, i32, i32, i32 }
; Function Attrs: nounwind
define i32 @f(%0* noalias nocapture readonly %arg, %0* noalias %arg1) local_unnamed_addr #0 {
bb:
call void @llvm.assume(i1 true) [ "align"(%0* %arg, i64 8), "align"(%0* %arg1, i64 8) ]
ret i32 0
}
; Function Attrs: nounwind willreturn
declare void @llvm.assume(i1) #1
attributes #0 = { nounwind "reciprocal-estimates"="none" }
attributes #1 = { nounwind willreturn }
This is what we'd have with -mllvm -enable-knowledge-retention
This reverts commit c95ffadb2474a4d8c4f598d94d35a9f31d9606cb.
More information about the All-commits
mailing list