Fix issue for new unique id system. Add level bits to help verifying symbols and split symbol tables.
For intermediates rebuilding, now need manually amending level bits for redeclaring built-ins.
This commit is contained in:
parent
74e8f05b9f
commit
93b400f267
17 changed files with 110 additions and 71 deletions
|
|
@ -227,10 +227,10 @@ enum ComputeDerivativeMode {
|
|||
|
||||
class TIdMaps {
|
||||
public:
|
||||
TMap<TString, int>& operator[](int i) { return maps[i]; }
|
||||
const TMap<TString, int>& operator[](int i) const { return maps[i]; }
|
||||
TMap<TString, long long>& operator[](long long i) { return maps[i]; }
|
||||
const TMap<TString, long long>& operator[](long long i) const { return maps[i]; }
|
||||
private:
|
||||
TMap<TString, int> maps[EsiCount];
|
||||
TMap<TString, long long> maps[EsiCount];
|
||||
};
|
||||
|
||||
class TNumericFeatures {
|
||||
|
|
@ -292,7 +292,8 @@ public:
|
|||
invertY(false),
|
||||
useStorageBuffer(false),
|
||||
nanMinMaxClamp(false),
|
||||
depthReplacing(false)
|
||||
depthReplacing(false),
|
||||
uniqueId(0)
|
||||
#ifndef GLSLANG_WEB
|
||||
,
|
||||
implicitThisName("@this"), implicitCounterName("@count"),
|
||||
|
|
@ -898,6 +899,8 @@ public:
|
|||
void addProcess(const std::string& process) { processes.addProcess(process); }
|
||||
void addProcessArgument(const std::string& arg) { processes.addArgument(arg); }
|
||||
const std::vector<std::string>& getProcesses() const { return processes.getProcesses(); }
|
||||
unsigned long long getUniqueId() const { return uniqueId; }
|
||||
void setUniqueId(unsigned long long id) { uniqueId = id; }
|
||||
|
||||
// Certain explicit conversions are allowed conditionally
|
||||
#ifdef GLSLANG_WEB
|
||||
|
|
@ -926,14 +929,14 @@ public:
|
|||
#endif
|
||||
|
||||
protected:
|
||||
TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
|
||||
TIntermSymbol* addSymbol(long long Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
|
||||
void error(TInfoSink& infoSink, const char*);
|
||||
void warn(TInfoSink& infoSink, const char*);
|
||||
void mergeCallGraphs(TInfoSink&, TIntermediate&);
|
||||
void mergeModes(TInfoSink&, TIntermediate&);
|
||||
void mergeTrees(TInfoSink&, TIntermediate&);
|
||||
void seedIdMap(TIdMaps& idMaps, int& maxId);
|
||||
void remapIds(const TIdMaps& idMaps, int idShift, TIntermediate&);
|
||||
void seedIdMap(TIdMaps& idMaps, long long& IdShift);
|
||||
void remapIds(const TIdMaps& idMaps, long long idShift, TIntermediate&);
|
||||
void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals);
|
||||
void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects);
|
||||
void mergeImplicitArraySizes(TType&, const TType&);
|
||||
|
|
@ -986,6 +989,7 @@ protected:
|
|||
int localSize[3];
|
||||
bool localSizeNotDefault[3];
|
||||
int localSizeSpecId[3];
|
||||
unsigned long long uniqueId;
|
||||
#ifndef GLSLANG_WEB
|
||||
public:
|
||||
const char* const implicitThisName;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue