MCPcopy Create free account
hub / github.com/beefytech/Beef / WriteObjectFile

Method WriteObjectFile

IDEHelper/Compiler/BfCodeGen.cpp:854–889  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

852}
853
854void BfCodeGen::WriteObjectFile(BfModule* bfModule, const StringImpl& outFileName, const BfCodeGenOptions& options)
855{
856 mQueuedCount++;
857
858 BfLogSys(bfModule->mSystem, "WriteObjectFile %s\n", outFileName.c_str());
859
860 BfCodeGenRequest* codeGenRequest = new BfCodeGenRequest();
861 mRequests.push_back(codeGenRequest);
862
863 {
864 BP_ZONE("WriteObjectFile_GetBufferData");
865 bfModule->mBfIRBuilder->GetBufferData(codeGenRequest->mOutBuffer);
866 }
867
868 auto rootModule = bfModule;
869 while (rootModule->mParentModule != NULL)
870 rootModule = rootModule->mParentModule;
871
872 codeGenRequest->mSrcModule = rootModule;
873 codeGenRequest->mOutFileName = outFileName;
874 codeGenRequest->mData = codeGenRequest->mOutBuffer;
875 codeGenRequest->mOptions = options;
876 if (ExternWriteObjectFile(codeGenRequest))
877 return;
878
879 DoWriteObjectFile(codeGenRequest, (void*)&codeGenRequest->mOutBuffer[0], (int)codeGenRequest->mOutBuffer.size(), codeGenRequest->mOutFileName, NULL);
880
881#ifdef DBG_FORCE_SYNCHRONIZED
882 while (mRequests.size() != 0)
883 {
884 UpdateStats();
885 }
886
887 BfLogSys(bfModule->mSystem, "WriteObjectFile Done\n");
888#endif
889}
890
891String BfCodeGen::GetBuildValue(const StringImpl& buildDir, const StringImpl& key)
892{

Callers 2

FinishMethod · 0.45
RunLoopMethod · 0.45

Calls 4

GetBufferDataMethod · 0.80
c_strMethod · 0.45
push_backMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected