[llvm] r352699 - [LegalizeTypes] Use report_fatal_error instead of llvm_unreachable in the default case of some type legalization handlers that can be reached with intrinsics with result or operands that aren't legal types.

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 4 11:57:49 PST 2019


Could this be tested?

On Wed, Jan 30, 2019 at 4:04 PM Craig Topper via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: ctopper
> Date: Wed Jan 30 16:04:48 2019
> New Revision: 352699
>
> URL: http://llvm.org/viewvc/llvm-project?rev=352699&view=rev
> Log:
> [LegalizeTypes] Use report_fatal_error instead of llvm_unreachable in the
> default case of some type legalization handlers that can be reached with
> intrinsics with result or operands that aren't legal types.
>
> These can be triggered by mistakenly using a 64-bit mode only intrinsics
> with a -mtriple=i686. Using report_fatal_error gives a better experience
> for this mistake in release builds instead of probably crashing.
>
> We already do this for some of the vector type legalization handles.
>
> Modified:
>     llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp?rev=352699&r1=352698&r2=352699&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp Wed Jan
> 30 16:04:48 2019
> @@ -1498,7 +1498,8 @@ void DAGTypeLegalizer::ExpandIntegerResu
>      dbgs() << "ExpandIntegerResult #" << ResNo << ": ";
>      N->dump(&DAG); dbgs() << "\n";
>  #endif
> -    llvm_unreachable("Do not know how to expand the result of this
> operator!");
> +    report_fatal_error("Do not know how to expand the result of this "
> +                       "operator!");
>
>    case ISD::MERGE_VALUES: SplitRes_MERGE_VALUES(N, ResNo, Lo, Hi); break;
>    case ISD::SELECT:       SplitRes_SELECT(N, Lo, Hi); break;
> @@ -3166,7 +3167,7 @@ bool DAGTypeLegalizer::ExpandIntegerOper
>      dbgs() << "ExpandIntegerOperand Op #" << OpNo << ": ";
>      N->dump(&DAG); dbgs() << "\n";
>    #endif
> -    llvm_unreachable("Do not know how to expand this operator's
> operand!");
> +    report_fatal_error("Do not know how to expand this operator's
> operand!");
>
>    case ISD::BITCAST:           Res = ExpandOp_BITCAST(N); break;
>    case ISD::BR_CC:             Res = ExpandIntOp_BR_CC(N); break;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190204/50b1f76d/attachment.html>


More information about the llvm-commits mailing list