Removing all unsafe casts

- some of them are there to provide more definite type info
- and most of them to indicate the guarantee of a value being not null
There are removed because they should not be necessary, and will probably be removed from Graal entirely eventually

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/ContextualNode.java
Let arguments in the arguments array

We transfer them normally to the frame to allow specialization on their type.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/ArgumentInitializationNode.java
	src/som/interpreter/nodes/ArgumentReadNode.java
	src/som/interpreter/nodes/UninitializedVariableNode.java
Remove optimization of blocks without contexts

Also remove all the necessary infrastructure keeping track of that information.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/compiler/Variable.java
Remove separate CatchNonLocalReturn node

Move the catching into the Invokable node.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/compiler/MethodGenerationContext.java
	src/som/interpreter/SNodeFactory.java
	src/som/interpreter/nodes/ReturnNonLocalNode.java
	src/som/primitives/Primitives.java
Remove #if* and iteration-related optimizations

- only #whileTrue: is left in, since it is required

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/MessageSendNode.java
	src/som/interpreter/nodes/specialized/whileloops/WhileWithStaticBlocksNode.java
	src/som/primitives/ArrayPrims.java
Make WhileCache compilable for this branch.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Remove caching from dispatch chains

This still keeps the chains, but they are always only the general case.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/MessageSendNode.java
	src/som/interpreter/nodes/dispatch/SObjectCheckDispatchNode.java
	src/som/primitives/ArrayPrims.java
Fixing compilation of #dnu branch

Doesn't need to be optimized here, but should not hinder compilation.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Removed all the non-control-relared eager specializations

The control-related ones are left in to make sure that the compiler still gets the necessary chances to optimize.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/MessageSendNode.java
	src/som/interpreter/nodes/nary/EagerBinaryPrimitiveNode.java
	src/som/interpreter/nodes/nary/EagerTernaryPrimitiveNode.java
	src/som/interpreter/nodes/nary/EagerUnaryPrimitiveNode.java
Remove optimizations for globals

- needed to put in bool objects into globals table, because, actually, we do not support Boolean objects anymore. Oops...

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/primitives/GlobalPrim.java
Fix compilation

This version doesn't need to optimize the unknown globals handler, but at least it should not prevent compilation completely.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Remove purely local variable access nodes.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/compiler/MethodGenerationContext.java
	src/som/interpreter/SNodeFactory.java
	src/som/interpreter/nodes/ArgumentInitializationNode.java
	src/som/interpreter/nodes/ContextualNode.java
	src/som/interpreter/nodes/LocalVariableNode.java
	src/som/interpreter/nodes/UninitializedVariableNode.java
Fix splitting of NonLocalVariableNodes

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/NonLocalVariableNode.java
Remove object layout handling and field access specialization.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/FieldNode.java
	src/som/primitives/reflection/IndexDispatch.java
Removing lowered core-lib function implementations

These are not strictly necessary, so, let's see wether they give essential benefits.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/MessageSendNode.java
	src/som/primitives/ArrayPrimitives.java
	src/som/primitives/ArrayPrims.java
	src/som/primitives/UnequalsPrim.java
Remove type specialization of frame slots.

Signed-off-by: Stefan Marr <git@stefan-marr.de>

Conflicts:
	src/som/interpreter/nodes/LocalVariableNode.java
	src/som/interpreter/nodes/NonLocalVariableNode.java
Whitespace

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Remove local argument node

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Only arguments can be super

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Move annotation to read node, write already got one

Signed-off-by: Stefan Marr <git@stefan-marr.de>