aux.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /* $Id$ */
  2. /*
  3. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  4. * See the copyright notice in the ACK home directory, in the file "Copyright".
  5. */
  6. /* S H A R E D
  7. *
  8. * A U X I L I A R Y R O U T I N E S
  9. *
  10. */
  11. offset off_set(line_p lnp);
  12. /* lnp has a SHORT or OFFSET operand. Return
  13. * the value of this operand as an offset.
  14. */
  15. extern offset aoff(arg_p list, int n);
  16. /* Determine the offset field of the
  17. * n'th argument in the list (this argument
  18. * must have type ARGOFF). Start counting at 0.
  19. */
  20. extern offset tmplocal(proc_p p, offset size);
  21. /* Allocate a new local variable in the
  22. * stack frame of p.
  23. */
  24. line_p int_line(offset off);
  25. /* Allocate a line struct of type OPSHORT
  26. * or OPOFFSET, whichever one fits best.
  27. */
  28. line_p reg_mes(offset tmp, short size, int typ, int score);
  29. /* Generate a register message with the
  30. * given arguments.
  31. */
  32. bool dom(bblock_p b1, bblock_p b2);
  33. /* See if b1 dominates b2. Note that a
  34. * block always * dominates itself.
  35. */
  36. bblock_p common_dom(bblock_p a, bblock_p b);
  37. /* find a basic block that dominates a as
  38. * well as b; note that a basic block also
  39. * dominates itself.
  40. */
  41. short add_timespace(short time, short space);
  42. /* Add together a time and space, using
  43. * the time_space_ratio parameter that
  44. * may be set by the user.
  45. */
  46. void rm_line(line_p l, bblock_p b);
  47. /* Remove line l from b basic block b.
  48. */
  49. void appnd_line(line_p l1, line_p l2);
  50. /* Put line l1 after l2.
  51. */
  52. line_p last_instr(bblock_p b);
  53. /* Determine the last line of a basic block.
  54. */
  55. line_p find_mesreg(offset off);
  56. /* Find the register message for the local
  57. * with the given offset.
  58. */
  59. bool is_regvar(offset off);
  60. /* See if there is a 'register message'
  61. * for the local variable with the
  62. * given offset.
  63. */
  64. offset regv_arg(offset off, int n);
  65. /* Fetch the n'th argument of the
  66. * register message of the local with
  67. * the given offset.
  68. */