You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

profopt-Testing.html 5.3KB

3 yıl önce
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>profopt Testing (GNU Compiler Collection (GCC) Internals)</title>
  21. <meta name="description" content="profopt Testing (GNU Compiler Collection (GCC) Internals)">
  22. <meta name="keywords" content="profopt Testing (GNU Compiler Collection (GCC) Internals)">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Testsuites.html#Testsuites" rel="up" title="Testsuites">
  30. <link href="compat-Testing.html#compat-Testing" rel="next" title="compat Testing">
  31. <link href="gcov-Testing.html#gcov-Testing" rel="prev" title="gcov Testing">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; font-weight: normal}
  55. span.sansserif {font-family: sans-serif; font-weight: normal}
  56. ul.no-bullet {list-style: none}
  57. -->
  58. </style>
  59. </head>
  60. <body lang="en">
  61. <a name="profopt-Testing"></a>
  62. <div class="header">
  63. <p>
  64. Next: <a href="compat-Testing.html#compat-Testing" accesskey="n" rel="next">compat Testing</a>, Previous: <a href="gcov-Testing.html#gcov-Testing" accesskey="p" rel="prev">gcov Testing</a>, Up: <a href="Testsuites.html#Testsuites" accesskey="u" rel="up">Testsuites</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  65. </div>
  66. <hr>
  67. <a name="Support-for-testing-profile_002ddirected-optimizations"></a>
  68. <h3 class="section">7.7 Support for testing profile-directed optimizations</h3>
  69. <p>The file <samp>profopt.exp</samp> provides language-independent support for
  70. checking correct execution of a test built with profile-directed
  71. optimization. This testing requires that a test program be built and
  72. executed twice. The first time it is compiled to generate profile
  73. data, and the second time it is compiled to use the data that was
  74. generated during the first execution. The second execution is to
  75. verify that the test produces the expected results.
  76. </p>
  77. <p>To check that the optimization actually generated better code, a
  78. test can be built and run a third time with normal optimizations to
  79. verify that the performance is better with the profile-directed
  80. optimizations. <samp>profopt.exp</samp> has the beginnings of this kind
  81. of support.
  82. </p>
  83. <p><samp>profopt.exp</samp> provides generic support for profile-directed
  84. optimizations. Each set of tests that uses it provides information
  85. about a specific optimization:
  86. </p>
  87. <dl compact="compact">
  88. <dt><code>tool</code></dt>
  89. <dd><p>tool being tested, e.g., <code>gcc</code>
  90. </p>
  91. </dd>
  92. <dt><code>profile_option</code></dt>
  93. <dd><p>options used to generate profile data
  94. </p>
  95. </dd>
  96. <dt><code>feedback_option</code></dt>
  97. <dd><p>options used to optimize using that profile data
  98. </p>
  99. </dd>
  100. <dt><code>prof_ext</code></dt>
  101. <dd><p>suffix of profile data files
  102. </p>
  103. </dd>
  104. <dt><code>PROFOPT_OPTIONS</code></dt>
  105. <dd><p>list of options with which to run each test, similar to the lists for
  106. torture tests
  107. </p>
  108. </dd>
  109. <dt><code>{ dg-final-generate { <var>local-directive</var> } }</code></dt>
  110. <dd><p>This directive is similar to <code>dg-final</code>, but the
  111. <var>local-directive</var> is run after the generation of profile data.
  112. </p>
  113. </dd>
  114. <dt><code>{ dg-final-use { <var>local-directive</var> } }</code></dt>
  115. <dd><p>The <var>local-directive</var> is run after the profile data have been
  116. used.
  117. </p></dd>
  118. </dl>
  119. </body>
  120. </html>