在 gcc cfghooks.cc 中
void
predict_edge (edge e, enum br_predictor predictor, int probability)
{
if (!cfg_hooks->predict_edge)
internal_error ("%s does not support predict_edge", cfg_hooks->name);
cfg_hooks->predict_edge (e, predictor, probability);
}
我找到了这条线
cfg_hooks->predict_edge (e, predictor, probability);
,
Predict_edge 是 cfghooks.h 中定义的函数指针
/* Predict edge E using PREDICTOR to given PROBABILITY. */
void (*predict_edge) (edge e, enum br_predictor predictor, int probability);
我找不到这个指针指向哪个函数...
我想知道在哪里可以找到这个函数体。谢谢你的帮助。
对于两个不同的 IR 有两种实现,
rtl_predict_edge
中的 gcc/cfgrtl.cc
和 gimple_predict_edge
中的 gcc/predict.cc
。