clang
20.0.0git
lib
Driver
ToolChains
Hexagon.h
Go to the documentation of this file.
1
//===--- Hexagon.h - Hexagon ToolChain Implementations ----------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HEXAGON_H
10
#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HEXAGON_H
11
12
#include "
Linux.h
"
13
#include "
clang/Driver/Tool.h
"
14
#include "
clang/Driver/ToolChain.h
"
15
16
namespace
clang
{
17
namespace
driver {
18
namespace
tools {
19
namespace
hexagon {
20
// For Hexagon, we do not need to instantiate tools for PreProcess, PreCompile
21
// and Compile.
22
// We simply use "clang -cc1" for those actions.
23
class
LLVM_LIBRARY_VISIBILITY
Assembler
final :
public
Tool
{
24
public
:
25
Assembler
(
const
ToolChain
&TC)
26
:
Tool
(
"hexagon::Assembler"
,
"hexagon-as"
, TC) {}
27
28
bool
hasIntegratedCPP
()
const override
{
return
false
; }
29
30
void
RenderExtraToolArgs(
const
JobAction
&JA,
31
llvm::opt::ArgStringList &CmdArgs)
const
;
32
void
ConstructJob(
Compilation
&C,
const
JobAction
&JA,
33
const
InputInfo
&Output,
const
InputInfoList
&Inputs,
34
const
llvm::opt::ArgList &TCArgs,
35
const
char
*LinkingOutput)
const override
;
36
};
37
38
class
LLVM_LIBRARY_VISIBILITY
Linker
final :
public
Tool
{
39
public
:
40
Linker
(
const
ToolChain
&TC) :
Tool
(
"hexagon::Linker"
,
"hexagon-ld"
, TC) {}
41
42
bool
hasIntegratedCPP
()
const override
{
return
false
; }