Revision: 123569 Author: dpatel Date: 2007-02-07 20:36:09 -0800 (Wed, 07 Feb 2007)
Log Message: ----------- Read bytecodes from PCH file. Modified Paths: -------------- apple-local/branches/llvm/gcc/Makefile.in apple-local/branches/llvm/gcc/c-pch.c apple-local/branches/llvm/gcc/llvm-backend.cpp apple-local/branches/llvm/gcc/llvm-linker-hack.cpp apple-local/branches/llvm/gcc/llvm.h Modified: apple-local/branches/llvm/gcc/Makefile.in =================================================================== --- apple-local/branches/llvm/gcc/Makefile.in 2007-02-08 04:34:00 UTC (rev 123568) +++ apple-local/branches/llvm/gcc/Makefile.in 2007-02-08 04:36:09 UTC (rev 123569) @@ -1069,7 +1069,7 @@ # We use llvm-config to determine the libraries that we need to link in our # target, optimizations analyses and the bcwriter. -LLVMCOMPONENTS := $(LLVMTARGETOBJ) scalaropts transformutils analysis bcwriter ipo +LLVMCOMPONENTS := $(LLVMTARGETOBJ) scalaropts transformutils analysis bcwriter ipo bcreader LLVMLIBFILES := $(shell $(LLVMBINPATH)/llvm-config --libfiles $(LLVMCOMPONENTS)) LLVMLDFLAGS := $(shell $(LLVMBINPATH)/llvm-config --ldflags) LIBS += $(LLVMLDFLAGS) Modified: apple-local/branches/llvm/gcc/c-pch.c =================================================================== --- apple-local/branches/llvm/gcc/c-pch.c 2007-02-08 04:34:00 UTC (rev 123568) +++ apple-local/branches/llvm/gcc/c-pch.c 2007-02-08 04:36:09 UTC (rev 123569) @@ -429,6 +429,12 @@ written += size; } free (buf); + /* APPLE LOCAL begin LLVM */ +#ifdef ENABLE_LLVM + llvm_pch_read(); +#endif + /* APPLE LOCAL end LLVM */ + } else { @@ -438,6 +444,7 @@ cpp_errno (pfile, CPP_DL_ERROR, "seeking"); } + cpp_prepare_state (pfile, &smd); gt_pch_restore (f); Modified: apple-local/branches/llvm/gcc/llvm-backend.cpp =================================================================== --- apple-local/branches/llvm/gcc/llvm-backend.cpp 2007-02-08 04:34:00 UTC (rev 123568) +++ apple-local/branches/llvm/gcc/llvm-backend.cpp 2007-02-08 04:36:09 UTC (rev 123569) @@ -32,6 +32,7 @@ #include "llvm/Assembly/Writer.h" #include "llvm/Assembly/PrintModulePass.h" #include "llvm/Bytecode/WriteBytecodePass.h" +#include "llvm/Bytecode/Reader.h" #include "llvm/CodeGen/RegAllocRegistry.h" #include "llvm/CodeGen/SchedulerRegistry.h" #include "llvm/CodeGen/ScheduleDAG.h" @@ -184,6 +185,21 @@ oFILEstream *AsmOutStream = 0; +void llvm_pch_read(void) { + + if (TheModule) + delete TheModule; + + fclose (asm_out_file); + std::string ErrMsg; + TheModule = ParseBytecodeFile(asm_file_name, &ErrMsg); + if (!TheModule) { + cerr << "Error reading bytecodes from PCH file\n"; + cerr << ErrMsg << "\n"; + exit(1); + } +} + // Initialize PCH writing. void llvm_pch_write_init(void) { timevar_push(TV_LLVM_INIT); Modified: apple-local/branches/llvm/gcc/llvm-linker-hack.cpp =================================================================== --- apple-local/branches/llvm/gcc/llvm-linker-hack.cpp 2007-02-08 04:34:00 UTC (rev 123568) +++ apple-local/branches/llvm/gcc/llvm-linker-hack.cpp 2007-02-08 04:36:09 UTC (rev 123569) @@ -26,6 +26,7 @@ #include "llvm/Analysis/LoadValueNumbering.h" #include "llvm/Transforms/IPO.h" #include "llvm/Bytecode/Writer.h" +#include "llvm/Bytecode/Reader.h" #include "llvm/CodeGen/ScheduleDAG.h" #include "llvm/CodeGen/Passes.h" #include "llvm/Support/Streams.h" @@ -41,6 +42,7 @@ new llvm::ExistingModuleProvider(0); llvm::createVerifierPass(); llvm::WriteBytecodeToFile(0, llvm::cout); + llvm::ParseBytecodeFile(NULL,NULL); llvm::createInstructionCombiningPass(); llvm::createScalarReplAggregatesPass(); Modified: apple-local/branches/llvm/gcc/llvm.h =================================================================== --- apple-local/branches/llvm/gcc/llvm.h 2007-02-08 04:34:00 UTC (rev 123568) +++ apple-local/branches/llvm/gcc/llvm.h 2007-02-08 04:36:09 UTC (rev 123569) @@ -83,6 +83,9 @@ /* Init pch writing. */ void llvm_pch_write_init(void); +/* Read bytecodes from PCH file. */ +void llvm_pch_read(void); + /* llvm_asm_file_start - Start the .s file. */ void llvm_asm_file_start(void); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits