You asked for a compiler, or IDE, but I really don't think native code compilation is the way Android apps are intended to mostly work, so you're going against the grain asking for C/C++ compilers. And since there is no JDK that is self-hosted, Java is probably out of the question too.
That being said you can still do programming, just not compiler based programming:
Part 1. This is kind of a flippant answer, but it's fun, anyways:
You can program in Commodore Basic using the Commodore 64 emulator (Frodo, I think it's called), available in the android market. Of course you're limited to 38911 basic bytes free
, and the syntax of "Commodore Basic 2.0".
It's not an IDE, in the modern sense, it's an interactive line-based BASIC interpreter. It can be pretty fun though. Command lines are actually really easy to use once you know what you're doing.
Part 2. Android Scripting Environment. Much more serious and up to date capabilities including Lua, and perhaps Python. Perhaps ASE might count as an IDE, depending on how you define IDE. ASE appears to be pretty simple (a text entry widget, and menus to save and run scripts), but that's all you really need on a small mobile device. ASE was thought of long before honeycomb tablets though, so the UI is optimized for smartphones, not tablets.