Help on how to use the IRremote

This makes no sense:

void loop()
{
  IR_code();
}

Putting everything that loop() has to do in a function that is called (potentially) millions of times per second is not a bright idea.