LCOV - code coverage report
Current view: top level - lib/Target/WebAssembly - WebAssemblySubtarget.cpp (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 12 12 100.0 %
Date: 2018-10-20 13:21:21 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===-- WebAssemblySubtarget.cpp - WebAssembly Subtarget Information ------===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : ///
      10             : /// \file
      11             : /// This file implements the WebAssembly-specific subclass of
      12             : /// TargetSubtarget.
      13             : ///
      14             : //===----------------------------------------------------------------------===//
      15             : 
      16             : #include "WebAssemblySubtarget.h"
      17             : #include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
      18             : #include "WebAssemblyInstrInfo.h"
      19             : #include "llvm/Support/TargetRegistry.h"
      20             : using namespace llvm;
      21             : 
      22             : #define DEBUG_TYPE "wasm-subtarget"
      23             : 
      24             : #define GET_SUBTARGETINFO_CTOR
      25             : #define GET_SUBTARGETINFO_TARGET_DESC
      26             : #include "WebAssemblyGenSubtargetInfo.inc"
      27             : 
      28             : WebAssemblySubtarget &
      29         293 : WebAssemblySubtarget::initializeSubtargetDependencies(StringRef FS) {
      30             :   // Determine default and user-specified characteristics
      31             : 
      32         293 :   if (CPUString.empty())
      33         276 :     CPUString = "generic";
      34             : 
      35         293 :   ParseSubtargetFeatures(CPUString, FS);
      36         293 :   return *this;
      37             : }
      38             : 
      39         293 : WebAssemblySubtarget::WebAssemblySubtarget(const Triple &TT,
      40             :                                            const std::string &CPU,
      41             :                                            const std::string &FS,
      42         293 :                                            const TargetMachine &TM)
      43             :     : WebAssemblyGenSubtargetInfo(TT, CPU, FS), HasSIMD128(false),
      44             :       HasAtomics(false), HasNontrappingFPToInt(false), HasSignExt(false),
      45             :       HasExceptionHandling(false), CPUString(CPU), TargetTriple(TT),
      46         586 :       FrameLowering(), InstrInfo(initializeSubtargetDependencies(FS)), TSInfo(),
      47         586 :       TLInfo(TM, *this) {}
      48             : 
      49        9075 : bool WebAssemblySubtarget::enableMachineScheduler() const {
      50             :   // Disable the MachineScheduler for now. Even with ShouldTrackPressure set and
      51             :   // enableMachineSchedDefaultSched overridden, it appears to have an overall
      52             :   // negative effect for the kinds of register optimizations we're doing.
      53        9075 :   return false;
      54             : }
      55             : 
      56          63 : bool WebAssemblySubtarget::useAA() const { return true; }

Generated by: LCOV version 1.13