xref: /freebsd-src/contrib/llvm-project/clang/lib/Driver/ToolChains/TCE.cpp (revision 349cc55c9796c4596a5b9904cd3281af295f878f)
10b57cec5SDimitry Andric //===--- TCE.cpp - TCE ToolChain Implementations ----------------*- C++ -*-===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric 
90b57cec5SDimitry Andric #include "TCE.h"
100b57cec5SDimitry Andric #include "CommonArgs.h"
110b57cec5SDimitry Andric 
120b57cec5SDimitry Andric using namespace clang::driver;
130b57cec5SDimitry Andric using namespace clang::driver::toolchains;
140b57cec5SDimitry Andric using namespace clang;
150b57cec5SDimitry Andric using namespace llvm::opt;
160b57cec5SDimitry Andric 
170b57cec5SDimitry Andric /// TCEToolChain - A tool chain using the llvm bitcode tools to perform
180b57cec5SDimitry Andric /// all subcommands. See http://tce.cs.tut.fi for our peculiar target.
190b57cec5SDimitry Andric /// Currently does not support anything else but compilation.
200b57cec5SDimitry Andric 
TCEToolChain(const Driver & D,const llvm::Triple & Triple,const ArgList & Args)210b57cec5SDimitry Andric TCEToolChain::TCEToolChain(const Driver &D, const llvm::Triple &Triple,
220b57cec5SDimitry Andric                            const ArgList &Args)
230b57cec5SDimitry Andric     : ToolChain(D, Triple, Args) {
240b57cec5SDimitry Andric   // Path mangling to find libexec
250b57cec5SDimitry Andric   std::string Path(getDriver().Dir);
260b57cec5SDimitry Andric 
270b57cec5SDimitry Andric   Path += "/../libexec";
280b57cec5SDimitry Andric   getProgramPaths().push_back(Path);
290b57cec5SDimitry Andric }
300b57cec5SDimitry Andric 
~TCEToolChain()310b57cec5SDimitry Andric TCEToolChain::~TCEToolChain() {}
320b57cec5SDimitry Andric 
IsMathErrnoDefault() const330b57cec5SDimitry Andric bool TCEToolChain::IsMathErrnoDefault() const { return true; }
340b57cec5SDimitry Andric 
isPICDefault() const350b57cec5SDimitry Andric bool TCEToolChain::isPICDefault() const { return false; }
360b57cec5SDimitry Andric 
isPIEDefault(const llvm::opt::ArgList & Args) const37*349cc55cSDimitry Andric bool TCEToolChain::isPIEDefault(const llvm::opt::ArgList &Args) const {
38*349cc55cSDimitry Andric   return false;
39*349cc55cSDimitry Andric }
400b57cec5SDimitry Andric 
isPICDefaultForced() const410b57cec5SDimitry Andric bool TCEToolChain::isPICDefaultForced() const { return false; }
420b57cec5SDimitry Andric 
TCELEToolChain(const Driver & D,const llvm::Triple & Triple,const ArgList & Args)430b57cec5SDimitry Andric TCELEToolChain::TCELEToolChain(const Driver &D, const llvm::Triple& Triple,
440b57cec5SDimitry Andric                                const ArgList &Args)
450b57cec5SDimitry Andric   : TCEToolChain(D, Triple, Args) {
460b57cec5SDimitry Andric }
470b57cec5SDimitry Andric 
~TCELEToolChain()480b57cec5SDimitry Andric TCELEToolChain::~TCELEToolChain() {}
49