OLD | NEW |
---|---|
1 //===--- ToolChains.h - ToolChain Implementations ---------------*- C++ -*-===// | 1 //===--- ToolChains.h - ToolChain Implementations ---------------*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 | 9 |
10 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_H | 10 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_H |
(...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
767 std::string Linker; | 767 std::string Linker; |
768 | 768 |
769 protected: | 769 protected: |
770 Tool *buildLinker() const override; | 770 Tool *buildLinker() const override; |
771 Tool *buildAssembler() const override; | 771 Tool *buildAssembler() const override; |
772 | 772 |
773 private: | 773 private: |
774 std::string NaClArmMacrosPath; | 774 std::string NaClArmMacrosPath; |
775 }; | 775 }; |
776 | 776 |
777 class LLVM_LIBRARY_VISIBILITY Generic_BC : public ToolChain { | |
778 virtual void anchor(); | |
Derek Schuff
2016/02/24 18:22:29
I don't think we need the anchor since we have an
Petr Hosek
2016/02/26 00:43:39
Done.
| |
779 public: | |
780 Generic_BC(const Driver &D, const llvm::Triple &Triple, | |
781 const llvm::opt::ArgList &Args); | |
782 | |
783 bool HasNativeLLVMSupport() const override { return true; } | |
784 | |
785 bool IsIntegratedAssemblerDefault() const override { return true; } | |
786 | |
787 bool isPICDefault() const override { return false; } | |
788 bool isPIEDefault() const override { return false; } | |
789 bool isPICDefaultForced() const override { return false; } | |
790 | |
791 bool isBitcodeOnlyTarget() const override { return true; } | |
792 }; | |
793 | |
794 class LLVM_LIBRARY_VISIBILITY PNaClToolChain : public Generic_BC { | |
795 public: | |
796 PNaClToolChain(const Driver &D, const llvm::Triple &Triple, | |
797 const llvm::opt::ArgList &Args); | |
798 | |
799 /// Add the linker arguments to link the compiler runtime library. | |
800 virtual void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args, | |
801 llvm::opt::ArgStringList &CmdArgs) const; | |
802 | |
803 CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override; | |
804 | |
805 void | |
806 AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, | |
807 llvm::opt::ArgStringList &CC1Args) const override; | |
808 void AddClangCXXStdlibIncludeArgs( | |
809 const llvm::opt::ArgList &DriverArgs, | |
810 llvm::opt::ArgStringList &CC1Args) const override; | |
811 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, | |
812 llvm::opt::ArgStringList &CmdArgs) const override; | |
813 | |
814 RuntimeLibType GetDefaultRuntimeLibType() const override { | |
815 return ToolChain::RLT_CompilerRT; | |
816 } | |
817 | |
818 void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, | |
819 llvm::opt::ArgStringList &CC1Args) const override; | |
820 | |
821 protected: | |
822 Tool *buildLinker() const override; | |
823 Tool *buildAssembler() const override; | |
824 | |
825 private: | |
826 static bool addLibStdCXXIncludePaths(Twine Base, Twine Suffix, | |
827 StringRef GCCTriple, | |
828 StringRef GCCMultiarchTriple, | |
829 StringRef TargetMultiarchTriple, | |
830 Twine IncludeSuffix, | |
831 const llvm::opt::ArgList &DriverArgs, | |
832 llvm::opt::ArgStringList &CC1Args); | |
833 | |
834 std::string computeSysRoot() const; | |
835 }; | |
836 | |
777 /// TCEToolChain - A tool chain using the llvm bitcode tools to perform | 837 /// TCEToolChain - A tool chain using the llvm bitcode tools to perform |
778 /// all subcommands. See http://tce.cs.tut.fi for our peculiar target. | 838 /// all subcommands. See http://tce.cs.tut.fi for our peculiar target. |
779 class LLVM_LIBRARY_VISIBILITY TCEToolChain : public ToolChain { | 839 class LLVM_LIBRARY_VISIBILITY TCEToolChain : public ToolChain { |
780 public: | 840 public: |
781 TCEToolChain(const Driver &D, const llvm::Triple &Triple, | 841 TCEToolChain(const Driver &D, const llvm::Triple &Triple, |
782 const llvm::opt::ArgList &Args); | 842 const llvm::opt::ArgList &Args); |
783 ~TCEToolChain() override; | 843 ~TCEToolChain() override; |
784 | 844 |
785 bool IsMathErrnoDefault() const override; | 845 bool IsMathErrnoDefault() const override; |
786 bool isPICDefault() const override; | 846 bool isPICDefault() const override; |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
872 llvm::opt::ArgStringList &CC1Args) const override; | 932 llvm::opt::ArgStringList &CC1Args) const override; |
873 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, | 933 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, |
874 llvm::opt::ArgStringList &CmdArgs) const override; | 934 llvm::opt::ArgStringList &CmdArgs) const override; |
875 }; | 935 }; |
876 | 936 |
877 } // end namespace toolchains | 937 } // end namespace toolchains |
878 } // end namespace driver | 938 } // end namespace driver |
879 } // end namespace clang | 939 } // end namespace clang |
880 | 940 |
881 #endif | 941 #endif |
OLD | NEW |