In the CoSy compiler development system, we like to implement optimizations at the language and target independent IR level. However, the benefits of a transformation often depend on characteristics of the target. CoSy uses Code Generator feedback to parametrize high level transformations. This is possible by viewing the generated code as an annotation of the IR. It allows calling the code generator from a high level transformation and then using the resulting code to decide on the transformation. After that, the generated code (annotation) can simply be removed. The importance of CG-feedback is that it keeps all target specifics in the code generator and remains isolated from the implementation of the high level transformation. An example transformation that is currently part of CoSy is the fully retargetable predicated execution optimization that replaces if-then-else constructs by conditional execution. The very same algorithm takes into account such aspects as generic or specific condition registers, (non-)interlocked scheduling, non-homogeneous instruction sets that allow only partial predication, local register pressure and even target aspects that are not foreseen today. These are all hidden in the code generator where they must be handled anyway. The predicated execution algorithm has a very simple interface: it calls the code generator and simply queries the resulting code for aspects such as cycle-count. We will present the CoSy CG-feedback framework and also sketch how it is used in predicated execution and other optimizations.