[llvm-commits] [gcc-plugin] r76306 - /gcc-plugin/trunk/llvm-convert.cpp

Bill Wendling isanbard at gmail.com
Sat Jul 18 16:23:33 PDT 2009


On Jul 18, 2009, at 4:24 AM, Duncan Sands wrote:

> Author: baldrick
> Date: Sat Jul 18 06:23:48 2009
> New Revision: 76306
>
> URL: http://llvm.org/viewvc/llvm-project?rev=76306&view=rev
> Log:
> Scaffolding for outputting gimple statements.
>
> Modified:
>    gcc-plugin/trunk/llvm-convert.cpp
>
> Modified: gcc-plugin/trunk/llvm-convert.cpp
> URL: http://llvm.org/viewvc/llvm-project/gcc-plugin/trunk/llvm-convert.cpp?rev=76306&r1=76305&r2=76306&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- gcc-plugin/trunk/llvm-convert.cpp (original)
> +++ gcc-plugin/trunk/llvm-convert.cpp Sat Jul 18 06:23:48 2009
> @@ -743,18 +743,26 @@
>   FOR_EACH_BB (bb) {
>     for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p  
> (gsi);
>          gsi_next (&gsi)) {
> -
> -      MemRef DestLoc;
>       gimple stmt = gsi_stmt (gsi);
>
> -      // If this stmt returns an aggregate value (e.g. a call whose  
> result is
> -      // ignored), create a temporary to receive the value.  Note  
> that we don't
> -      // do this for MODIFY_EXPRs as an efficiency hack.
> -      if (isAggregateTreeType(TREE_TYPE(stmt)) &&
> -          TREE_CODE(stmt)!= MODIFY_EXPR && TREE_CODE(stmt)! 
> =INIT_EXPR)
> -        DestLoc = CreateTempLoc(ConvertType(TREE_TYPE(stmt)));
> -
> -      Emit(stmt, DestLoc.Ptr ? &DestLoc : NULL);
> +      switch (gimple_code(stmt)) {
> +      case GIMPLE_ASSIGN:
> +      case GIMPLE_COND:
> +      case GIMPLE_GOTO:
> +      case GIMPLE_LABEL:
> +      case GIMPLE_RETURN:
> +      case GIMPLE_ASM:
> +      case GIMPLE_CALL:
> +      case GIMPLE_SWITCH:
> +      case GIMPLE_NOP:
> +      case GIMPLE_PREDICT:
> +      case GIMPLE_RESX:
> +      default:
> +        std::cerr << "Unknown GIMPLE statement during LLVM emission! 
> \n"
> +          << "gimple_code: " << gimple_code(stmt) << "\n";
> +        print_gimple_stmt(stderr, stmt, 4, 0);
> +        abort();

Will this warn about no "break" statement at the end of a switch?

-bw

> +      }
>     }
>
>     FOR_EACH_EDGE (e, ei, bb->succs)
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list