- sprintf(prof_filename, "%.*s%s\n", (int)(sizeof(prof_filename) - sizeof(suffix)), cup_name, suffix);
-
- /*
- Next: Either instruments all irgs with profiling code
- or try to read in profile data for current translation unit.
- */
- if (be_options.opt_profile) {
- ir_graph *prof_init_irg = ir_profile_instrument(prof_filename, profile_default);
+ sprintf(prof_filename, "%.*s%s",
+ (int)(sizeof(prof_filename) - sizeof(suffix)), cup_name, suffix);
+
+ if (be_options.opt_profile_use) {
+ bool res = ir_profile_read(prof_filename);
+ if (!res) {
+ fprintf(stderr, "Warning: Couldn't read profile data '%s'\n",
+ prof_filename);
+ }
+ }
+ if (be_options.opt_profile_generate) {
+ ir_graph *prof_init_irg
+ = ir_profile_instrument(prof_filename);