From fa27c01c8666cb24821a0af3c58d6a23f8c54726 Mon Sep 17 00:00:00 2001 From: bloodstalker Date: Thu, 20 Dec 2018 03:54:59 +0330 Subject: build uses pch now. kinda cool but our build time bottleneck seems to be linking --- cgrep.cpp | 24 +----------------------- makefile | 15 ++++++++++----- pch.hpp | 20 ++++++++++++++++++++ 3 files changed, 31 insertions(+), 28 deletions(-) create mode 100644 pch.hpp diff --git a/cgrep.cpp b/cgrep.cpp index 1c4ab3f..e09ad63 100644 --- a/cgrep.cpp +++ b/cgrep.cpp @@ -7,30 +7,8 @@ * */ /*************************************************************************************************/ /*included modules*/ -/*project headers*/ +#include "./pch.hpp" #include "./cfe-extra/cfe_extra.h" -/*standard headers*/ -#include -#include -#include -#include -#include -#include -#include -#include -/*LLVM headers*/ -#include "clang/AST/AST.h" -#include "clang/AST/ASTConsumer.h" -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/ASTMatchers/ASTMatchers.h" -#include "clang/Basic/LLVM.h" -#include "clang/Frontend/CompilerInstance.h" -#include "clang/Frontend/FrontendActions.h" -#include "clang/Lex/Lexer.h" -#include "clang/Rewrite/Core/Rewriter.h" -#include "clang/Tooling/CommonOptionsParser.h" -#include "clang/Tooling/Tooling.h" -#include "llvm/Support/raw_ostream.h" /*************************************************************************************************/ /*used namespaces*/ using namespace llvm; diff --git a/makefile b/makefile index 289d775..5ffe346 100644 --- a/makefile +++ b/makefile @@ -28,7 +28,8 @@ LLVM_CONF?=llvm-config LLVM_CXX_FLAGS=$(shell $(LLVM_CONF) --cxxflags) LLVM_CXX_FLAGS+=-I$(shell $(LLVM_CONF) --src-root)/tools/clang/include\ -I$(shell $(LLVM_CONF) --obj-root)/tools/clang/include\ - -stdlib=libstdc++ -std=c++17 -fexceptions + -std=c++17 -fexceptions +#LLVM_LD_FLAGS=-Wl,--start-group $(shell $(LLVM_CONF) --libs) -Wl, --end-group LLVM_LD_FLAGS=-Wl,--start-group -lclangAST -lclangAnalysis -lclangBasic\ -lclangDriver -lclangEdit -lclangFrontend -lclangFrontendTool\ -lclangLex -lclangParse -lclangSema -lclangEdit -lclangASTMatchers\ @@ -75,7 +76,7 @@ LD_FLAGS+=$(EXTRA_LD_FLAGS) .PHONY:all clean help ASM SO TAGS -all:$(TARGET) +all: pch.hpp.gch $(TARGET) everything:$(TARGET) A ASM SO $(TARGET)-dbg TAGS $(TARGET)-cov @@ -89,8 +90,8 @@ depend:.depend -include ./.depend -.cpp.o: - $(CXX) $(CXX_FLAGS) -c $< -o $@ +%.o:%.cpp + $(CXX) -include-pch pch.hpp.gch $(CXX_FLAGS) -c $< -o $@ %.odbg:%.cpp $(CXX) $(CXX_FLAGS) -g -c $< -o $@ @@ -98,6 +99,9 @@ depend:.depend %.ocov:%.cpp $(CXX) $(CXX_FLAGS) $(COV_CXX) -c $< -o $@ +pch.hpp.gch: pch.hpp + $(CXX) $(CXX_FLAGS) -c $< -o $@ + ./cfe-extra/cfe_extra.o:./cfe-extra/cfe_extra.cpp $(CXX) $(CXX_FLAGS) -c $< -o $@ @@ -162,12 +166,13 @@ format: - clang-format -i $(SRCS) $(HDRS) clean: - rm -f *.o *.dis *.odbg *.ocov *~ $(TARGET) $(TARGET).so $(TARGET)-static $(TARGET)-dbg $(TARGET).a $(TARGET)-cov ./keccak-tiny/*.o ./keccak-tiny/*.ocov ./keccak-tiny/*.odbg + rm -f *.o *.dis *.odbg *.ocov *~ $(TARGET) $(TARGET).so $(TARGET)-static $(TARGET)-dbg $(TARGET).a $(TARGET)-cov deepclean: clean - rm tags - rm .depend - $(MAKE) -C ./cfe-extra clean + - rm *.gch help: @echo "--all is the default target, runs $(TARGET) target" diff --git a/pch.hpp b/pch.hpp new file mode 100644 index 0000000..6923390 --- /dev/null +++ b/pch.hpp @@ -0,0 +1,20 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "clang/AST/AST.h" +#include "clang/AST/ASTConsumer.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" +#include "clang/ASTMatchers/ASTMatchers.h" +#include "clang/Basic/LLVM.h" +#include "clang/Frontend/CompilerInstance.h" +#include "clang/Frontend/FrontendActions.h" +#include "clang/Lex/Lexer.h" +#include "clang/Rewrite/Core/Rewriter.h" +#include "clang/Tooling/CommonOptionsParser.h" +#include "clang/Tooling/Tooling.h" +#include "llvm/Support/raw_ostream.h" -- cgit v1.2.3