• Paul Eggert's avatar
    Mark _Noreturn error functions as cold · 6d6c55db
    Paul Eggert authored
    On my platform this made ‘make compile-always’ 1.3% faster.
    Suggested by Alex Gramiak in:
    https://lists.gnu.org/r/emacs-devel/2019-04/msg00684.html
    * configure.ac (nw): Don’t use -Wsuggest-attribute=cold.
    * lib-src/make-docfile.c (write_globals):
    Mark noreturn functions as cold.
    * src/callproc.c (exec_failed):
    * src/data.c (wrong_length_argument, wrong_type_argument):
    * src/emacs-module.c (module_abort):
    * src/emacs.c (terminate_due_to_signal):
    * src/eval.c (unwind_to_catch):
    * src/image.c (my_png_error, my_error_exit):
    * src/json.c (json_out_of_memory, json_parse_error):
    * src/keyboard.c (quit_throw_to_read_char, user_error):
    * src/lisp.h (die, wrong_type_argument, wrong_choice)
    (args_out_of_range, args_out_of_range_3, circular_list)
    (buffer_overflow, memory_full, buffer_memory_full)
    (string_overflow, xsignal, xsignal0, xsignal1, xsignal2)
    (xsignal3, signal_error, overflow_error, error, verror)
    (nsberror, report_file_errno, report_file_error)
    (report_file_notify_error, terminate_due_to_signal)
    (emacs_abort, fatal):
    * src/lread.c (load_error_old_style_backquotes)
    (end_of_file_error, invalid_syntax):
    * src/pdumper.c (error_unsupported_dump_object):
    * src/puresize.h (pure_write_error):
    * src/search.c (matcher_overflow):
    * src/sound.c (sound_perror, alsa_sound_perror):
    * src/sysdep.c (handle_arith_signal):
    * src/systime.h (time_overflow):
    * src/term.c (maybe_fatal, vfatal):
    * src/textprop.c (text_read_only):
    * src/timefns.c (invalid_time_zone_specification)
    (time_error, invalid_hz):
    * src/xterm.c (x_connection_closed):
    Use AVOID instead of _Noreturn void, so that it’s marked cold.
    * src/conf_post.h (__has_attribute_cold) [!__has_attribute]:
    New macro.
    (ATTRIBUTE_COLD): New macro.
    * src/frame.h (WINDOW_SYSTEM_RETURN): Add ATTRIBUTE_COLD.
    * src/lisp.h (AVOID): New macro.
    * src/xterm.c: Omit unnecessary static decls, so that we needn’t
    worry about which functions should be marked cold.
    (x_io_error_quitter): Mark as cold.
    6d6c55db
Name
Last commit
Last update
..
bitmaps Loading commit data...
.dbxinit Loading commit data...
.gdbinit Loading commit data...
COPYING Loading commit data...
ChangeLog.1 Loading commit data...
ChangeLog.10 Loading commit data...
ChangeLog.11 Loading commit data...
ChangeLog.12 Loading commit data...
ChangeLog.13 Loading commit data...
ChangeLog.2 Loading commit data...
ChangeLog.3 Loading commit data...
ChangeLog.4 Loading commit data...
ChangeLog.5 Loading commit data...
ChangeLog.6 Loading commit data...
ChangeLog.7 Loading commit data...
ChangeLog.8 Loading commit data...
ChangeLog.9 Loading commit data...
Makefile.in Loading commit data...
README Loading commit data...
alloc.c Loading commit data...
atimer.c Loading commit data...
atimer.h Loading commit data...
bidi.c Loading commit data...
bignum.c Loading commit data...
bignum.h Loading commit data...
blockinput.h Loading commit data...
buffer.c Loading commit data...
buffer.h Loading commit data...
bytecode.c Loading commit data...
callint.c Loading commit data...
callproc.c Loading commit data...
casefiddle.c Loading commit data...
casetab.c Loading commit data...
category.c Loading commit data...
category.h Loading commit data...
ccl.c Loading commit data...
ccl.h Loading commit data...
character.c Loading commit data...
character.h Loading commit data...
charset.c Loading commit data...
charset.h Loading commit data...
chartab.c Loading commit data...
cm.c Loading commit data...
cm.h Loading commit data...
cmds.c Loading commit data...
coding.c Loading commit data...
coding.h Loading commit data...
commands.h Loading commit data...
composite.c Loading commit data...
composite.h Loading commit data...
conf_post.h Loading commit data...
cygw32.c Loading commit data...
cygw32.h Loading commit data...
data.c Loading commit data...
dbusbind.c Loading commit data...
decompress.c Loading commit data...
deps.mk Loading commit data...
dired.c Loading commit data...
dispextern.h Loading commit data...
dispnew.c Loading commit data...
disptab.h Loading commit data...
dmpstruct.awk Loading commit data...
doc.c Loading commit data...
doprnt.c Loading commit data...
dosfns.c Loading commit data...
dosfns.h Loading commit data...
dynlib.c Loading commit data...
dynlib.h Loading commit data...
editfns.c Loading commit data...
emacs-icon.h Loading commit data...
emacs-module.c Loading commit data...
emacs-module.h.in Loading commit data...
emacs.c Loading commit data...
emacsgtkfixed.c Loading commit data...
emacsgtkfixed.h Loading commit data...
epaths.in Loading commit data...
eval.c Loading commit data...
fileio.c Loading commit data...
filelock.c Loading commit data...
firstfile.c Loading commit data...
floatfns.c Loading commit data...
fns.c Loading commit data...
font.c Loading commit data...
font.h Loading commit data...
fontset.c Loading commit data...
fontset.h Loading commit data...
frame.c Loading commit data...
frame.h Loading commit data...
fringe.c Loading commit data...
ftcrfont.c Loading commit data...
ftfont.c Loading commit data...
ftfont.h Loading commit data...
ftxfont.c Loading commit data...
getpagesize.h Loading commit data...
gfilenotify.c Loading commit data...
gmalloc.c Loading commit data...
gnutls.c Loading commit data...
gnutls.h Loading commit data...
gtkutil.c Loading commit data...
gtkutil.h Loading commit data...
image.c Loading commit data...
indent.c Loading commit data...
indent.h Loading commit data...
inotify.c Loading commit data...
insdel.c Loading commit data...
intervals.c Loading commit data...
intervals.h Loading commit data...
json.c Loading commit data...
keyboard.c Loading commit data...
keyboard.h Loading commit data...
keymap.c Loading commit data...
keymap.h Loading commit data...
kqueue.c Loading commit data...
lastfile.c Loading commit data...
lcms.c Loading commit data...
lisp.h Loading commit data...
lread.c Loading commit data...
macfont.h Loading commit data...
macfont.m Loading commit data...
macros.c Loading commit data...
macros.h Loading commit data...
macuvs.h Loading commit data...
marker.c Loading commit data...
menu.c Loading commit data...
menu.h Loading commit data...
mini-gmp-emacs.c Loading commit data...
mini-gmp.c Loading commit data...
mini-gmp.h Loading commit data...
minibuf.c Loading commit data...
module-env-25.h Loading commit data...
module-env-26.h Loading commit data...
module-env-27.h Loading commit data...
msdos.c Loading commit data...
msdos.h Loading commit data...
nsfns.m Loading commit data...
nsfont.m Loading commit data...
nsgui.h Loading commit data...
nsimage.m Loading commit data...
nsmenu.m Loading commit data...
nsselect.m Loading commit data...
nsterm.h Loading commit data...
nsterm.m Loading commit data...
pdumper.c Loading commit data...
pdumper.h Loading commit data...
print.c Loading commit data...
process.c Loading commit data...
process.h Loading commit data...
profiler.c Loading commit data...
ptr-bounds.h Loading commit data...
puresize.h Loading commit data...
ralloc.c Loading commit data...
regex-emacs.c Loading commit data...
regex-emacs.h Loading commit data...
region-cache.c Loading commit data...
region-cache.h Loading commit data...
scroll.c Loading commit data...
search.c Loading commit data...
sheap.c Loading commit data...
sheap.h Loading commit data...
sound.c Loading commit data...
syntax.c Loading commit data...
syntax.h Loading commit data...
sysdep.c Loading commit data...
sysselect.h Loading commit data...
syssignal.h Loading commit data...
sysstdio.h Loading commit data...
systhread.c Loading commit data...
systhread.h Loading commit data...
systime.h Loading commit data...
systty.h Loading commit data...
syswait.h Loading commit data...
term.c Loading commit data...
termcap.c Loading commit data...
termchar.h Loading commit data...
termhooks.h Loading commit data...
terminal.c Loading commit data...
terminfo.c Loading commit data...
termopts.h Loading commit data...
textprop.c Loading commit data...
thread.c Loading commit data...
thread.h Loading commit data...
timefns.c Loading commit data...
tparam.c Loading commit data...
tparam.h Loading commit data...
undo.c Loading commit data...
unexaix.c Loading commit data...
unexcoff.c Loading commit data...
unexcw.c Loading commit data...
unexec.h Loading commit data...
unexelf.c Loading commit data...
unexhp9k800.c Loading commit data...
unexmacosx.c Loading commit data...
unexsol.c Loading commit data...
unexw32.c Loading commit data...
vm-limit.c Loading commit data...
w16select.c Loading commit data...
w32.c Loading commit data...
w32.h Loading commit data...
w32common.h Loading commit data...
w32console.c Loading commit data...
w32cygwinx.c Loading commit data...
w32fns.c Loading commit data...
w32font.c Loading commit data...
w32font.h Loading commit data...
w32gui.h Loading commit data...
w32heap.c Loading commit data...
w32heap.h Loading commit data...
w32inevt.c Loading commit data...
w32inevt.h Loading commit data...
w32menu.c Loading commit data...
w32notify.c Loading commit data...
w32proc.c Loading commit data...
w32reg.c Loading commit data...
w32select.c Loading commit data...
w32select.h Loading commit data...
w32term.c Loading commit data...
w32term.h Loading commit data...
w32uniscribe.c Loading commit data...
w32xfns.c Loading commit data...
widget.c Loading commit data...
widget.h Loading commit data...
widgetprv.h Loading commit data...
window.c Loading commit data...
window.h Loading commit data...
xdisp.c Loading commit data...
xfaces.c Loading commit data...
xfns.c Loading commit data...
xfont.c Loading commit data...
xftfont.c Loading commit data...
xgselect.c Loading commit data...
xgselect.h Loading commit data...
xmenu.c Loading commit data...
xml.c Loading commit data...
xrdb.c Loading commit data...
xselect.c Loading commit data...
xsettings.c Loading commit data...
xsettings.h Loading commit data...
xsmfns.c Loading commit data...
xterm.c Loading commit data...
xterm.h Loading commit data...
xwidget.c Loading commit data...
xwidget.h Loading commit data...