Inserted IfConversionPreRegAllocation pass in the machine code back-end chain
and registered for the target Hexagon
Now is empty, TODO: Understand when the pass is executed in the chain, it supposed to be
before the registry allocation.
populate the pass with the utilities of the original if-conversion pass
Added options to disable if-converer and the ifconvertion before the registry allocation

:
It seems to work correctly. I should test it in a better way
Removed Stuff due to phy register operation
Included new general predicated copy
Added PSI instruction to the general machine instruction
Added piece of code for change PHI instrucion with PSI-node
Inserted PSI field in the structure inside CodeGenTarget.cpp
Inserted PSIElimination

This pass is aimed to translate all the psi-node inside the machine code
into copy instruction target-related with the correct predicates
renamed and modified PsiElimination pass
Added creation instructions instead of the psi elimination
Fixed FTR creation and predication.
Covered also the Triangle Case
Inserted modification also for Simple case not tested yet
Merge branch 'final' into master

Changed a couple of things to insert the project to the current llvm master.
So far are still missing the tests I used to run my code and the description of the project

Conflicts:
	include/llvm/Target/TargetOpcodes.h
	utils/TableGen/CodeGenTarget.cpp