manipulating AST and IR

I'm newbie to clang/LLVM.

We are doing a feasibility check to port llvm/clang to new target (RISC). C
programming language and target constraints are:

- New target specific pragmas are added to 'C' language.
- New operator addition to 'C'.
- Target does not have a stack.

At top level, it appears that AST and IR need manipulation. Can this be done
? Need an expert's advice on if this is achievable.If yes, please suggest
the steps to get started.