mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48:20 +02:00
Linux fixes
This commit is contained in:
parent
cdc030ab30
commit
52a441f486
5 changed files with 33 additions and 42 deletions
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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()))
|
||||
{
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -933,10 +933,7 @@ public:
|
|||
|
||||
BfIRCodeGenBase* mIRCodeGen;
|
||||
BfIRCodeGen* mBfIRCodeGen;
|
||||
|
||||
#ifdef BF_PLATFORM_WINDOWS
|
||||
BeIRCodeGen* mBeIRCodeGen;
|
||||
#endif
|
||||
|
||||
#ifdef BFIR_RENTRY_CHECK
|
||||
std::set<BfType*> mDeclReentrySet;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue