summaryrefslogtreecommitdiff
path: root/source/slang/lower-to-ir.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2018-12-20 13:23:58 -0500
committerGitHub <noreply@github.com>2018-12-20 13:23:58 -0500
commit02e44bade6370309c0292e84178095c2bae299be (patch)
tree9eca881afbd33c665cdb3616cb3f50994efee436 /source/slang/lower-to-ir.cpp
parent332056a947ec3d9e3588a60d449d64577a6f18c0 (diff)
Feature/lex memory reduction (#762)
* Only do scrubbing if needed. When allocating content try to limit size (with scrubbing each token takes up 1k), now it's 16 bytes min size. * Don't allocate for every call to write on the CallbackWriter - use the m_appendBuffer. * Don't allocate memory for CallbackWriter use m_appendBuffer. * Use UnownedStringSlice for suffix output for parsing float/int literals. Fix typo in invalidFloatingPointLiteralSuffix * Using memory arena to hold tokens that are not in SourceManager. * Improve comment on lexing. * Make UnownedStringSlice allocation simpler on SourceManager. * Fix error on gcc around UnownedStringSlice - because VC converted string + UnownedStringSlice automatically into a String. * Fix generateName needing concat string for gcc. * When constructing a Token in parseAttributeName - because it's a Identifier, we have to set the Name. * Remove translation through String on getIntrinsicOp * Make func-cbuffer-param disablable with -exclude compatibility-issue * Move memory leak in render-test. * From review - can just use "?:" instead of performing a concat.
Diffstat (limited to 'source/slang/lower-to-ir.cpp')
-rw-r--r--source/slang/lower-to-ir.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/source/slang/lower-to-ir.cpp b/source/slang/lower-to-ir.cpp
index 0d39664c8..2242619d0 100644
--- a/source/slang/lower-to-ir.cpp
+++ b/source/slang/lower-to-ir.cpp
@@ -458,9 +458,9 @@ IROp getIntrinsicOp(
// based on the name of the declaration...
auto name = decl->getName();
- auto nameText = getText(name);
+ auto nameText = getUnownedStringSliceText(name);
- IROp op = findIROp(nameText.Buffer());
+ IROp op = findIROp(nameText);
SLANG_ASSERT(op != kIROp_Invalid);
return op;
}
@@ -4909,7 +4909,7 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
definition = definitionToken.Content;
}
- builder->addTargetIntrinsicDecoration(irInst, targetMod->targetToken.Content.getUnownedSlice(), definition.getUnownedSlice());
+ builder->addTargetIntrinsicDecoration(irInst, targetMod->targetToken.Content, definition.getUnownedSlice());
}
}
@@ -5240,7 +5240,7 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
// a specialized definition of the particular function for the given
// target, and we need to reflect that at the IR level.
- getBuilder()->addTargetDecoration(irFunc, targetMod->targetToken.Content.getUnownedSlice());
+ getBuilder()->addTargetDecoration(irFunc, targetMod->targetToken.Content);
}
// If this declaration was marked as having a target-specific lowering
@@ -5255,7 +5255,7 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
//
for(auto extensionMod : decl->GetModifiersOfType<RequiredGLSLExtensionModifier>())
{
- getBuilder()->addRequireGLSLExtensionDecoration(irFunc, extensionMod->extensionNameToken.Content.getUnownedSlice());
+ getBuilder()->addRequireGLSLExtensionDecoration(irFunc, extensionMod->extensionNameToken.Content);
}
for(auto versionMod : decl->GetModifiersOfType<RequiredGLSLVersionModifier>())
{