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

          Line data    Source code
       1             : //===-- AVR.h - Top-level interface for AVR representation ------*- C++ -*-===//
       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             : // This file contains the entry points for global functions defined in the LLVM
      11             : // AVR back-end.
      12             : //
      13             : //===----------------------------------------------------------------------===//
      14             : 
      15             : #ifndef LLVM_AVR_H
      16             : #define LLVM_AVR_H
      17             : 
      18             : #include "llvm/CodeGen/SelectionDAGNodes.h"
      19             : #include "llvm/Target/TargetMachine.h"
      20             : 
      21             : namespace llvm {
      22             : 
      23             : class AVRTargetMachine;
      24             : class FunctionPass;
      25             : 
      26             : FunctionPass *createAVRISelDag(AVRTargetMachine &TM,
      27             :                                CodeGenOpt::Level OptLevel);
      28             : FunctionPass *createAVRExpandPseudoPass();
      29             : FunctionPass *createAVRFrameAnalyzerPass();
      30             : FunctionPass *createAVRRelaxMemPass();
      31             : FunctionPass *createAVRDynAllocaSRPass();
      32             : FunctionPass *createAVRBranchSelectionPass();
      33             : 
      34             : void initializeAVRExpandPseudoPass(PassRegistry&);
      35             : void initializeAVRRelaxMemPass(PassRegistry&);
      36             : 
      37             : /// Contains the AVR backend.
      38             : namespace AVR {
      39             : 
      40             : /// An integer that identifies all of the supported AVR address spaces.
      41             : enum AddressSpace { DataMemory, ProgramMemory };
      42             : 
      43             : /// Checks if a given type is a pointer to program memory.
      44             : template <typename T> bool isProgramMemoryAddress(T *V) {
      45         112 :   return cast<PointerType>(V->getType())->getAddressSpace() == ProgramMemory;
      46             : }
      47             : 
      48             : inline bool isProgramMemoryAccess(MemSDNode const *N) {
      49         193 :   auto V = N->getMemOperand()->getValue();
      50             : 
      51         124 :   return (V != nullptr) ? isProgramMemoryAddress(V) : false;
      52             : }
      53             : 
      54             : } // end of namespace AVR
      55             : 
      56             : } // end namespace llvm
      57             : 
      58             : #endif // LLVM_AVR_H

Generated by: LCOV version 1.13