Home | History | Annotate | Download | only in tools
      1 #!/bin/bash -e
      2 
      3 # Copyright (C) 2012 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License");
      6 # you may not use this file except in compliance with the License.
      7 # You may obtain a copy of the License at
      8 #
      9 #      http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS,
     13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 # See the License for the specific language governing permissions and
     15 # limitations under the License.
     16 
     17 SCRIPTDIR=`dirname "$0"`
     18 cd "${SCRIPTDIR}/.."
     19 
     20 mkdir -p generated
     21 
     22 OUTPUT_FILE=generated/art_module.cc
     23 
     24 echo "// Generated with ${0}" > ${OUTPUT_FILE}
     25 
     26 echo '
     27 
     28 #pragma GCC diagnostic ignored "-Wframe-larger-than="
     29 // TODO: Remove this pragma after llc can generate makeLLVMModuleContents()
     30 // with smaller frame size.
     31 
     32 #include <llvm/IR/DerivedTypes.h>
     33 #include <llvm/IR/Function.h>
     34 #include <llvm/IR/Module.h>
     35 #include <llvm/IR/Type.h>
     36 
     37 #include <vector>
     38 
     39 using namespace llvm;
     40 
     41 namespace art {
     42 namespace llvm {
     43 
     44 ' >> ${OUTPUT_FILE}
     45 
     46 llc -march=cpp -cppgen=contents art_module.ll -o - >> ${OUTPUT_FILE}
     47 
     48 echo '
     49 } // namespace llvm
     50 } // namespace art' >> ${OUTPUT_FILE}
     51