Skip to content

Instantly share code, notes, and snippets.

@nickdesaulniers
Created September 14, 2023 20:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nickdesaulniers/4ea4b46f112f1b3bc440020f3a2a01e1 to your computer and use it in GitHub Desktop.
Save nickdesaulniers/4ea4b46f112f1b3bc440020f3a2a01e1 to your computer and use it in GitHub Desktop.
clang++ foo.cpp -I eigen -fsanitize=address,null -std=c++17 -O3 -march=haswell -Xclang -ast-dump -Xclang -ast-dump-filter=round
Dumping round:
FunctionDecl 0x556c3378c900 <foo.cpp:5:1, line:7:1> line:5:6 used round 'std::conditional_t<internal::is_same<float, CoeffReturnType>::value, TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>, TensorConversionOp<float, const TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>>> (Tensor)'
|-ParmVarDecl 0x556c3378c800 <col:13, col:20> col:20 used m 'Tensor':'Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>'
`-CompoundStmt 0x556c33910100 <col:23, line:7:1>
`-ReturnStmt 0x556c339100f0 <line:6:5, col:47>
`-ExprWithCleanups 0x556c339100d8 <col:12, col:47> 'std::conditional_t<internal::is_same<float, CoeffReturnType>::value, TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>, TensorConversionOp<float, const TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>>>':'Eigen::TensorConversionOp<float, const Eigen::TensorConversionOp<int, const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>>>'
`-ImplicitCastExpr 0x556c339100c0 <col:12, col:47> 'std::conditional_t<internal::is_same<float, CoeffReturnType>::value, TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>, TensorConversionOp<float, const TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>>>':'Eigen::TensorConversionOp<float, const Eigen::TensorConversionOp<int, const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>>>' <NoOp>
`-CXXMemberCallExpr 0x556c338d1e40 <col:12, col:47> 'const std::conditional_t<internal::is_same<float, CoeffReturnType>::value, TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>, TensorConversionOp<float, const TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>>>':'const Eigen::TensorConversionOp<float, const Eigen::TensorConversionOp<int, const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>>>'
`-MemberExpr 0x556c338d1dc8 <col:12, col:45> '<bound member function type>' .cast 0x556c338d1cc8
`-ImplicitCastExpr 0x556c3390fd90 <col:12, col:33> 'const Eigen::TensorBase<Eigen::TensorConversionOp<int, const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>>, 0>' xvalue <UncheckedDerivedToBase (TensorBase)>
`-MaterializeTemporaryExpr 0x556c338d0718 <col:12, col:33> 'const std::conditional_t<internal::is_same<int, CoeffReturnType>::value, TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>, TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>>':'const Eigen::TensorConversionOp<int, const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>>' xvalue
`-CXXMemberCallExpr 0x556c33884550 <col:12, col:33> 'const std::conditional_t<internal::is_same<int, CoeffReturnType>::value, TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>, TensorConversionOp<int, const TensorCwiseUnaryOp<bind2nd_op<scalar_sum_op<float, float>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>>>':'const Eigen::TensorConversionOp<int, const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>>'
`-MemberExpr 0x556c338844d8 <col:12, col:31> '<bound member function type>' .cast 0x556c338843d8
`-ImplicitCastExpr 0x556c338d0520 <col:12, col:21> 'const Eigen::TensorBase<Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>, 0>' xvalue <UncheckedDerivedToBase (TensorBase)>
`-MaterializeTemporaryExpr 0x556c33882e28 <col:12, col:21> 'const TensorCwiseUnaryOp<internal::bind2nd_op<internal::scalar_sum_op<Scalar, Scalar>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>':'const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>' xvalue
`-ParenExpr 0x556c33882df0 <col:12, col:21> 'const TensorCwiseUnaryOp<internal::bind2nd_op<internal::scalar_sum_op<Scalar, Scalar>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>':'const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>'
`-CXXOperatorCallExpr 0x556c33807b50 <col:13, col:17> 'const TensorCwiseUnaryOp<internal::bind2nd_op<internal::scalar_sum_op<Scalar, Scalar>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>>':'const Eigen::TensorCwiseUnaryOp<Eigen::internal::bind2nd_op<Eigen::internal::scalar_sum_op<float>>, const Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>>' '+'
|-ImplicitCastExpr 0x556c33807b38 <col:15> 'const TensorCwiseUnaryOp<internal::bind2nd_op<internal::scalar_sum_op<Scalar, Scalar>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>> (*)(Scalar) const' <FunctionToPointerDecay>
| `-DeclRefExpr 0x556c33807ac0 <col:15> 'const TensorCwiseUnaryOp<internal::bind2nd_op<internal::scalar_sum_op<Scalar, Scalar>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>> (Scalar) const' lvalue CXXMethod 0x556c337b9f10 'operator+' 'const TensorCwiseUnaryOp<internal::bind2nd_op<internal::scalar_sum_op<Scalar, Scalar>>, const TensorFixedSize<float, Sizes<2, 2>, 1, long>> (Scalar) const'
|-ImplicitCastExpr 0x556c33807a98 <col:13> 'const Eigen::TensorBase<Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>, 0>' lvalue <UncheckedDerivedToBase (TensorBase -> TensorBase)>
| `-DeclRefExpr 0x556c33807560 <col:13> 'Tensor':'Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>' lvalue ParmVar 0x556c3378c800 'm' 'Tensor':'Eigen::TensorFixedSize<float, Eigen::Sizes<2, 2>, 1>'
`-FloatingLiteral 0x556c33807580 <col:17> 'float' 5.000000e-01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment