From: Borja F. <bor...@gm...> - 2013-07-11 16:02:25
|
Hello Stepan, 1) Wow, those are really big conditions xD. You could split them into single conditions and use continues: if (cond 1) continue; if (cond 2) continue; etc... instead of having a huge if() that is quite hard to read. 2) Yes I thought about that aswell, that not all constant nodes are asm flags, but the ARM backend does this, so either they have a bug there or it's safe? I prefer if you could move the big condition inside the for() into the top of the loop, it makes the for() quite unreadable. And adjust there the i variable as needed for each suboperand as you mentioned before. 4) Why do you say they handle everything in the SelectInlineAsm method? As far as i can see they only handle one specific case, otherwise they return NULL and let the default behaviour do the work. 6) Yes glues are a bit tricky, dont worry about them, I will fix them when this gets commited. One last thing, when you run the regression tests, enable locally the machine verifier to catch any additional errors. To enable it unconditionally search for the command object (i think it's declared in codegen/passes.cpp as a cl::opt) and turn it on by default. When you're doing your own tests you can enable it passing -verify-machineisntrs or something like that to llc. |