transform: optimize string comparisons against ""

This optimizes a common pattern like:

    if s != "" {
        ...
    }

to:

    if len(s) != 0 {
        ...
    }

This avoids a runtime call and thus produces slightly better code.
This commit is contained in:
Ayke van Laethem
2021-03-08 13:39:46 +01:00
committed by Ron Evans
parent 13db2c13e5
commit f9865a08bc
5 changed files with 77 additions and 0 deletions
+1
View File
@@ -97,6 +97,7 @@ func Optimize(mod llvm.Module, config *compileopts.Config, optLevel, sizeLevel i
// Run TinyGo-specific interprocedural optimizations.
OptimizeAllocs(mod)
OptimizeStringToBytes(mod)
OptimizeStringEqual(mod)
} else {
// Must be run at any optimization level.