Compare commits

...
Author SHA1 Message Date
Larry Gritz 38419adb31 CHANGES and bump version to developer preview 1.12.4.7
Signed-off-by: Larry Gritz <lg@larrygritz.com>
2022-05-12 22:52:30 -07:00
Larry Gritz a55340438e Constant folding of startswith() (#1507)
We have constant folded endswith() for a long time. Dunno why we
overlooked startswith, but here it is.

Signed-off-by: Larry Gritz <lg@larrygritz.com>
2022-05-12 22:50:24 -07:00
Larry Gritz f8948e631a CHANGES and bump version to developer preview 1.12.4.6
Signed-off-by: Larry Gritz <lg@larrygritz.com>
2022-05-04 13:46:06 -07:00
4 changed files with 35 additions and 10 deletions
+13 -3
View File
@@ -51,6 +51,12 @@ API changes, new options, new ShadingSystem features (for renderer writers):
RendererServices::get_userdata(). #1391 (1.12.3)
* Better hiding of the Matrix22 class, which was never actually part of the
public APIs. #1480 (1.12.4.5)
* Add ACES2065-1 and ACEScg as shading system color spaces (#1486) (1.12.4.6)
* Expanded warnings (via enabling the "opt_warnings" attribute of the
ShadingSystem) for operations that try to create new strings mid-shader, or
that need to access the characters of strings mid-shader. These are only
triggered for those cases that cannot be resolved by the end of the "runtime
optimization" phase. #1497 (1.12.4.6)
Continued work on experimental SIMD batched shading mode:
* Added support for masked operations to LLVMUtil. #1248 #1250 (1.12.0.0)
@@ -65,7 +71,7 @@ Continued work on experimental SIMD batched shading mode:
* ISA-specific modules. #1345 (1.12.2)
* Introduction of CI testing of batched mode. #1357 #1367 (1.12.2)
* Control flow and string ops. #1372 (1.12.2)
* Matrix operations. #1378 (1.12.2)
* Matrix operations. #1378 (1.12.2) #1485 (1.12.4.6)
* Batched algebraic, trig, and transcendental functions. #1385 (1.12.2)
* Batched noise. #1394 (1.12.3)
* Batched implementation of all color operations. #1408 (1.12.3)
@@ -99,6 +105,7 @@ Continued work on experimental OptiX rendering:
Performance improvements:
* Less mutex locking around use and retrieval of ColorSystem related to
doing color transforms. #1405 (1.12.3)
* Constant folding of OSL startswith() function. #1507 (1.12.4.7)
Bug fixes and other improvements (internals):
* Fix derivatives of texture calls when only derivatives of the "alpha"
@@ -135,6 +142,9 @@ Bug fixes and other improvements (internals):
globals. #1462 (1.12.4.4)
* Print all 4 levels of version numbers in help messages. #1477 (1.12.4.4)
* Fix GPU code generation crash. #1479 (1.12.4.4)
* Work to transition internals to use modern std::format notation for
formatted output. #1487 #1490 (1.12.4.6)
* Fix testrender memory error on teardown. #1499 (1.12.4.6)
Internals/developer concerns:
* Use the `final` keyword in certain internal classes where applicable.
@@ -198,12 +208,12 @@ Build & test system improvements:
generation, needed to avoid duplicate cudaMalloc symbols with CUDA9+
#1271 (1.12.0.1)
- Build against LLVM 11 #1274 (1.12.0.1), LLVM 12 #1351 (1.12.1.0)
#1412 (1.12.3), LLVM 13 #1420 (1.12.3)
#1412 (1.12.3), LLVM 13 #1420 (1.12.3), LLVM 14 #1492 (1.12.4.6)
- Fix build break against recent OIIO master change where m_mutex field
was removed from ImageInput. #1281 (1.12.0.1/1.11.9)
- Work to ensure that OIIO will build correctly against the upcoming
Imath 3.0 and OpenEXR 3.0. #1299 (1.11.10/1.12.1) #1332 (1.11.11/1.12.1)
#1341 (1.11.12/1.12.1) #1356 #1368 (1.11.13/1.12.2)
#1341 (1.11.12/1.12.1) #1356 #1368 (1.11.13/1.12.2) #1489 (1.12.4.6)
- Improved finding of llvm components when using static libraries. #1375
(1.12.2)
- No longer use boost regex, completely rely on std::regex now that OSL
+1 -1
View File
@@ -3,7 +3,7 @@
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
cmake_minimum_required (VERSION 3.12)
project (OSL VERSION 1.12.4.5
project (OSL VERSION 1.12.4.7
LANGUAGES CXX C
HOMEPAGE_URL "https://github.com/AcademySoftwareFoundation/OpenShadingLanguage")
set (PROJ_NAME ${PROJECT_NAME}) # short name
+20 -5
View File
@@ -1157,11 +1157,7 @@ DECLFOLDER(constfold_endswith)
OSL_DASSERT (S.typespec().is_string() && E.typespec().is_string());
ustring s = S.get_string();
ustring e = E.get_string();
size_t elen = e.length(), slen = s.length();
int result = 0;
if (elen <= slen)
result = (strncmp (s.c_str()+slen-elen, e.c_str(), elen) == 0);
int cind = rop.add_constant (result);
int cind = rop.add_constant(OIIO::Strutil::ends_with(s, e) ? 1 : 0);
rop.turn_into_assign (op, cind, "const fold endswith");
return 1;
}
@@ -1170,6 +1166,25 @@ DECLFOLDER(constfold_endswith)
DECLFOLDER(constfold_startswith)
{
// Try to turn R=startswith(s,e) into R=C
Opcode& op(rop.inst()->ops()[opnum]);
Symbol& S(*rop.inst()->argsymbol(op.firstarg() + 1));
Symbol& E(*rop.inst()->argsymbol(op.firstarg() + 2));
if (S.is_constant() && E.is_constant()) {
OSL_DASSERT(S.typespec().is_string() && E.typespec().is_string());
ustring s = S.get_string();
ustring e = E.get_string();
int cind = rop.add_constant(OIIO::Strutil::starts_with(s, e) ? 1 : 0);
rop.turn_into_assign(op, cind, "const fold startswith");
return 1;
}
return 0;
}
DECLFOLDER(constfold_stoi)
{
// Try to turn R=stoi(s) into R=C
+1 -1
View File
@@ -1287,7 +1287,7 @@ shading_system_setup_op_descriptors (ShadingSystemImpl::OpDescriptorMap& op_desc
OP (splineinverse, spline, none, true, 0);
OP (split, split, split, false, 0);
OP (sqrt, generic, sqrt, true, 0);
OP (startswith, generic, none, true, STRCHARS);
OP (startswith, generic, startswith, true, STRCHARS);
OP (step, generic, none, true, 0);
OP (stof, generic, stof, true, STRCHARS);
OP (stoi, generic, stoi, true, STRCHARS);