When compiling with optimizations enabled, code was basically getting completely optimized away.
The issue was when I was cleaning up "unneeded" code that had been copied from the Sparc backend, I made AnalyzeBranch
return false.  It should have returned true to indicate it had not done additional branch analysis and that the
branch folding code (BranchFolder::OptimizeBlock) should not attempt to merge blocks.
Set isBarrier only for unconditional branches
Add MOVEREG pattern and use it for InstrInfo::copyPhysReg (instead of the weird AND thing).
Minor aesthetic cleanup: don't output offset for memory references if it is zero.