Package org.jruby.ir.instructions
Class BuildCompoundStringInstr
java.lang.Object
org.jruby.ir.instructions.Instr
org.jruby.ir.instructions.ResultBaseInstr
org.jruby.ir.instructions.NOperandResultBaseInstr
org.jruby.ir.instructions.BuildCompoundStringInstr
- All Implemented Interfaces:
ResultInstr
-
Field Summary
Fields inherited from class org.jruby.ir.instructions.ResultBaseInstr
result
Fields inherited from class org.jruby.ir.instructions.Instr
EMPTY_OPERANDS
-
Constructor Summary
ConstructorsConstructorDescriptionBuildCompoundStringInstr
(Variable result, Operand[] pieces, org.jcodings.Encoding encoding, int estimatedSize, StringStyle stringStyle, String file, int line) -
Method Summary
Modifier and TypeMethodDescriptionClone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope).static BuildCompoundStringInstr
void
org.jcodings.Encoding
getFile()
int
int
getLine()
Operand[]
interpret
(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) boolean
boolean
isFrozen()
simplifyInstr
(IRManager manager) This will make an attempt to combine multiple pieces when they are contiguout frozen strings OR immutable literals.void
Methods inherited from class org.jruby.ir.instructions.NOperandResultBaseInstr
getOperands, setOperand
Methods inherited from class org.jruby.ir.instructions.ResultBaseInstr
getResult, updateResult
Methods inherited from class org.jruby.ir.instructions.Instr
canBeDeletedFromScope, canRaiseException, cloneOperands, computeScopeFlags, dumpableFields, getOperation, getUsedVariables, hasSideEffects, interpretAndGetNewIPC, isDead, isDeletable, markDead, renameVars, simplifyOperands, simplifyOperands, toString, toStringNonOperandArgs, transfersControl
-
Constructor Details
-
BuildCompoundStringInstr
public BuildCompoundStringInstr(Variable result, Operand[] pieces, org.jcodings.Encoding encoding, int estimatedSize, StringStyle stringStyle, String file, int line)
-
-
Method Details
-
getPieces
-
getEncoding
public org.jcodings.Encoding getEncoding() -
getInitialSize
public int getInitialSize() -
clone
Description copied from class:Instr
Clone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope). This might renaming variables and labels to eliminate naming conflicts. The implementation might vary on the cloning mode. -
encode
- Overrides:
encode
in classResultBaseInstr
-
decode
-
interpret
public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) -
visit
-
isFrozen
public boolean isFrozen() -
isChilled
public boolean isChilled() -
getFile
-
getLine
public int getLine() -
simplifyInstr
This will make an attempt to combine multiple pieces when they are contiguout frozen strings OR immutable literals. It may fail as not all strings can be concatenated together (e.g. mismatched encodings).- Overrides:
simplifyInstr
in classInstr
- Parameters:
manager
- the IR manager- Returns:
- the simplified instruction or itself when it cannot be simplified.
-