}
}
- if ( ((flags & ASM_CONSTRAINT_FLAG_MODIFIER_WRITE)
- && (flags & ASM_CONSTRAINT_FLAG_MODIFIER_NO_WRITE))
- || ((flags & ASM_CONSTRAINT_FLAG_MODIFIER_READ
- && (flags & ASM_CONSTRAINT_FLAG_MODIFIER_NO_READ)))) {
+ if ((
+ flags & ASM_CONSTRAINT_FLAG_MODIFIER_WRITE &&
+ flags & ASM_CONSTRAINT_FLAG_MODIFIER_NO_WRITE
+ ) || (
+ flags & ASM_CONSTRAINT_FLAG_MODIFIER_READ &&
+ flags & ASM_CONSTRAINT_FLAG_MODIFIER_NO_READ
+ )) {
flags |= ASM_CONSTRAINT_FLAG_INVALID;
}
- if (! (flags & (ASM_CONSTRAINT_FLAG_MODIFIER_READ
- | ASM_CONSTRAINT_FLAG_MODIFIER_WRITE
- | ASM_CONSTRAINT_FLAG_MODIFIER_NO_WRITE
- | ASM_CONSTRAINT_FLAG_MODIFIER_NO_READ))) {
+ if (!(flags & (ASM_CONSTRAINT_FLAG_MODIFIER_READ |
+ ASM_CONSTRAINT_FLAG_MODIFIER_WRITE |
+ ASM_CONSTRAINT_FLAG_MODIFIER_NO_WRITE |
+ ASM_CONSTRAINT_FLAG_MODIFIER_NO_READ)
+ )) {
flags |= ASM_CONSTRAINT_FLAG_MODIFIER_READ;
}
return flags;
}
-bool be_is_valid_clobber(const char *clobber)
+int be_is_valid_clobber(const char *clobber)
{
/* memory is a valid clobber. (the frontend has to detect this case too,
* because it has to add memory edges to the asm) */
if (strcmp(clobber, "memory") == 0)
- return true;
+ return 1;
/* cc (condition code) is always valid */
if (strcmp(clobber, "cc") == 0)
- return true;
+ return 1;
return isa_if->is_valid_clobber(isa_if, clobber);
}
be_init_modules();
}
+/* Finalize the Firm backend. */
+void firm_be_finish(void)
+{
+ be_quit_modules();
+}
+
/* Returns the backend parameter */
const backend_params *be_get_backend_param(void)
{
*/
if (ir_profile_has_data())
birg->exec_freq = ir_create_execfreqs_from_profile(irg);
- else
+ else {
+ /* TODO: edges are corrupt for EDGE_KIND_BLOCK after the local
+ * optimize graph phase merges blocks in the x86 backend */
+ edges_deactivate(irg);
birg->exec_freq = compute_execfreq(irg, 10);
+ }
BE_TIMER_POP(t_execfreq);
ir_timer_t *t = NULL;
/* The user specified another config file to read. do that now. */
- if(strlen(config_file) > 0) {
+ if (config_file[0] != '\0') {
FILE *f;
- if((f = fopen(config_file, "rt")) != NULL) {
+ if ((f = fopen(config_file, "rt")) != NULL) {
lc_opt_from_file(config_file, f, NULL);
fclose(f);
}