1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Linux fixes

This commit is contained in:
Brian Fiete 2020-12-14 09:24:45 -08:00
parent cdc030ab30
commit 52a441f486
5 changed files with 33 additions and 42 deletions

View file

@ -130,6 +130,10 @@ public:
void Reset();
void Mixin(const void* data, int size);
void Mixin(int val)
{
Mixin((void*)&val, (int)sizeof(val));
}
template <typename T>
void Mixin(const T& val)
{

View file

@ -2101,74 +2101,74 @@ String BeModule::ToString(BeFunction* wantFunc)
str += " {\n";
#define DISPLAY_INST0(typeName, name) \
case typeName##::TypeId: { \
case typeName::TypeId: { \
auto castedInst = (typeName*)inst; \
str += name; \
} \
break;
#define DISPLAY_INST1(typeName, name, member1) \
case typeName##::TypeId: { \
case typeName::TypeId: { \
auto castedInst = (typeName*)inst; \
str += name; \
str += " "; \
dc.ToString(str, castedInst->##member1); \
dc.ToString(str, castedInst->member1); \
} \
break;
#define DISPLAY_INST2(typeName, name, member1, member2) \
case typeName##::TypeId: { \
case typeName::TypeId: { \
auto castedInst = (typeName*)inst;\
str += name; \
str += " "; \
dc.ToString(str, castedInst->##member1); \
dc.ToString(str, castedInst->member1); \
str += ", "; \
dc.ToString(str, castedInst->##member2); \
dc.ToString(str, castedInst->member2); \
} \
break;
#define DISPLAY_INST2_OPEN(typeName, name, member1, member2) \
case typeName##::TypeId: { \
case typeName::TypeId: { \
auto castedInst = (typeName*)inst;\
str += name; \
str += " "; \
dc.ToString(str, castedInst->##member1); \
dc.ToString(str, castedInst->member1); \
str += ", "; \
dc.ToString(str, castedInst->##member2); \
dc.ToString(str, castedInst->member2); \
}
#define DISPLAY_INST3(typeName, name, member1, member2, member3) \
case typeName##::TypeId: { \
case typeName::TypeId: { \
auto castedInst = (typeName*)inst;\
str += name; \
str += " "; \
dc.ToString(str, castedInst->##member1); \
dc.ToString(str, castedInst->member1); \
str += ", "; \
dc.ToString(str, castedInst->##member2); \
if (castedInst->##member3 != NULL) \
dc.ToString(str, castedInst->member2); \
if ((std::is_pointer<decltype(castedInst->member3)>::value) && (castedInst->member3 != NULL)) \
{ \
str += ", "; \
str += dc.ToString(castedInst->##member3); \
str += dc.ToString(castedInst->member3); \
} \
} \
break;
#define DISPLAY_INST4(typeName, name, member1, member2, member3, member4) \
case typeName##::TypeId: { \
case typeName::TypeId: { \
auto castedInst = (typeName*)inst;\
str += name; \
str += " "; \
dc.ToString(str, castedInst->##member1); \
dc.ToString(str, castedInst->member1); \
str += ", "; \
dc.ToString(str, castedInst->##member2); \
if (castedInst->##member3 != NULL) \
dc.ToString(str, castedInst->member2); \
if ((std::is_pointer<decltype(castedInst->member3)>::value) && (castedInst->member3 != NULL)) \
{ \
str += ", "; \
dc.ToString(str, castedInst->##member3); \
if (castedInst->##member4 != NULL) \
dc.ToString(str, castedInst->member3); \
if ((std::is_pointer<decltype(castedInst->member4)>::value) && (castedInst->member4 != NULL)) \
{ \
str += ", "; \
dc.ToString(str, castedInst->##member4); \
dc.ToString(str, castedInst->member4); \
} \
} \
} \
@ -2880,7 +2880,8 @@ void BeModule::DoInlining(BeFunction* func)
if (func->mDbgFunction != NULL)
prevDbgVars = (int)func->mDbgFunction->mVariables.size();*/
_DoInlining(blockIdx, NULL, std::unordered_set<BeFunction*>());
std::unordered_set<BeFunction*> newFuncSet;
_DoInlining(blockIdx, NULL, newFuncSet);
/*if ((func->mDbgFunction != NULL) && (prevDbgVars != (int)func->mDbgFunction->mVariables.size()))
{

View file

@ -180,6 +180,10 @@ file(GLOB SRC_FILES
Compiler/BfTargetTriple.cpp
Compiler/CeMachine.cpp
Compiler/MemReporter.cpp
Backend/BeContext.cpp
Backend/BeIRCodeGen.cpp
Backend/BeModule.cpp
)
# Add library to build.

View file

@ -10,10 +10,7 @@
#include "BfMangler.h"
#include "BfCompiler.h"
#include "BfSystem.h"
#ifdef BF_PLATFORM_WINDOWS
#include "../Backend/BeIRCodeGen.h"
#endif
#pragma warning(push)
#pragma warning(disable:4141)
@ -1177,9 +1174,7 @@ BfIRBuilder::BfIRBuilder(BfModule* module) : BfIRConstHolder(module)
mHasDebugInfo = false;
mHasDebugLineInfo = false;
mIRCodeGen = NULL;
#ifdef BF_PLATFORM_WINDOWS
mBeIRCodeGen = NULL;
#endif
mBfIRCodeGen = NULL;
mDbgVerifyCodeGen = false;
@ -1326,7 +1321,6 @@ String BfIRBuilder::ToString(BfIRValue irValue)
strStream.flush();
return outStr;
}
#ifdef BF_PLATFORM_WINDOWS
else if (mBeIRCodeGen != NULL)
{
auto val = mBeIRCodeGen->GetBeValue(irValue.mId);
@ -1343,7 +1337,6 @@ String BfIRBuilder::ToString(BfIRValue irValue)
return str;
}
#endif
else
return "???";
}
@ -1388,7 +1381,6 @@ String BfIRBuilder::ToString(BfIRType irType)
strStream.flush();
return outStr;
}
#ifdef BF_PLATFORM_WINDOWS
else if (mBeIRCodeGen != NULL)
{
BeType* beType;
@ -1412,7 +1404,6 @@ String BfIRBuilder::ToString(BfIRType irType)
dc.ToString(str, beType);
return str;
}
#endif
else if (irType.mKind == BfIRTypeData::TypeKind_TypeId)
{
return StrFormat("Type Id %d", irType.mId);
@ -1436,7 +1427,6 @@ String BfIRBuilder::ToString(BfIRFunction irFunc)
strStream.flush();
return outStr;
}
#ifdef BF_PLATFORM_WINDOWS
else if (mBeIRCodeGen != NULL)
{
auto val = mBeIRCodeGen->GetBeValue(irFunc.mId);
@ -1448,7 +1438,6 @@ String BfIRBuilder::ToString(BfIRFunction irFunc)
dc.ToString(str, val);
return str;
}
#endif
else
return "???";
}
@ -1483,7 +1472,6 @@ String BfIRBuilder::ToString(BfIRMDNode irMDNode)
strStream.flush();
return outStr;
}
#ifdef BF_PLATFORM_WINDOWS
else if (mBeIRCodeGen != NULL)
{
auto md = mBeIRCodeGen->GetBeMetadata(irMDNode.mId);
@ -1494,7 +1482,6 @@ String BfIRBuilder::ToString(BfIRMDNode irMDNode)
dc.ToString(str, md);
return str;
}
#endif
else
return "???";
}
@ -1603,7 +1590,6 @@ void BfIRBuilder::SetBackend(bool isBeefBackend)
BF_ASSERT(mIRCodeGen == NULL);
if (mDbgVerifyCodeGen)
{
#ifdef BF_PLATFORM_WINDOWS
if (isBeefBackend)
{
mBeIRCodeGen = new BeIRCodeGen();
@ -1612,7 +1598,6 @@ void BfIRBuilder::SetBackend(bool isBeefBackend)
mIRCodeGen = mBeIRCodeGen;
}
else
#endif
{
mBfIRCodeGen = new BfIRCodeGen();
mBfIRCodeGen->mStream = &mStream;

View file

@ -933,10 +933,7 @@ public:
BfIRCodeGenBase* mIRCodeGen;
BfIRCodeGen* mBfIRCodeGen;
#ifdef BF_PLATFORM_WINDOWS
BeIRCodeGen* mBeIRCodeGen;
#endif
#ifdef BFIR_RENTRY_CHECK
std::set<BfType*> mDeclReentrySet;