RISC, quando afirmado com honestidade, significa "Complexidade do Conjunto de Instruções Reduzidas" - O número de instruções não é necessariamente reduzido, mas cada instrução é mais simples, em termos dos ciclos de máquina necessários para executá-la e em termos do número de portões (ou loja de microcódigo) dedicados a implementá-lo.
A teoria (que é pelo menos parcialmente realizada) é que, reduzindo a quantidade de lógica de controle, mais espaço de chip está disponível para registros e caminho de dados. Portanto, as máquinas RISC normalmente têm 2-4 vezes mais registros que suas contrapartes CISC.
Isso faz com que o compilador faça o trabalho dessa lógica de controle omitida, incluindo as operações de "planejamento" (sequenciando-as) para que, digamos, você não faça dois acréscimos consecutivos, mas faça um acréscimo (e em registros diferentes) para que tanto o somador quanto o câmbio sejam utilizados de maneira ideal. E o compilador também deve gerenciar o conjunto de registros, para otimizar o movimento de entrada e saída dos registros, minimizando os acessos de armazenamento. Além disso, o compilador deve saber como utilizar melhor as instruções ímpares (como "deslocar para a esquerda e máscara com literal"), pois elas geralmente têm um cenário (talvez estranho) em que são relativamente poderosas.
Como resultado, as instruções geradas por um bom compilador RISC são virtualmente impossíveis de decifrar. Mesmo se você conhece bem o conjunto de instruções, descobrir que algum valor de meia hora atrás ainda está no registro 12 é difícil, na melhor das hipóteses, mesmo que não sejam as operações complicadas de mudança e máscara ocorrendo o tempo todo.
(Para aqueles que aparentemente não acreditam que eu sei do que estou falando, eu me envolvi primeiramente no RISC com o IBM 801, no início dos anos 70, e eu estava em uma base de primeiro nome com George Radin e Marty Hopkins.)