summaryrefslogtreecommitdiffstats
path: root/clang/test/Profile
Commit message (Collapse)AuthorAgeFilesLines
* [profile] Fix another use of the driver.Sean Silva2016-04-231-1/+1
| | | | | | Follow-on to r267262. llvm-svn: 267263
* [profile] Use cc1 in these tests instead of the driver.Sean Silva2016-04-235-9/+9
| | | | | | | I ran into this when seeing what tests would break if we make a driver-level decision about whether FEPGO or IRPGO is the default. llvm-svn: 267262
* [PGO] Avoid instrumenting constants at value sitesBetul Buyukkurt2016-03-311-0/+11
| | | | | | | | | | Value profiling should not profile constants and/or constant expressions when they appear as callees in call instructions. Constant expressions form when a direct callee has bitcasts or inttoptr(ptrtint (callee)) nests surrounding it. Value profiling should avoid instrumenting such cases. Mostly NFC. llvm-svn: 265037
* [PGO] Test case fix for r264783 Betul Buyukkurt2016-03-291-1/+1
| | | | llvm-svn: 264795
* [PGO] Move the instrumentation point closer to the value site.Betul Buyukkurt2016-03-292-2/+24
| | | | | | | | | For terminator instructions, the value profiling instrumentation happens in a basic block other than where the value site resides. This CR moves the instrumentation point prior to the value site. Mostly NFC. llvm-svn: 264783
* Attach profile summary information to Module.Easwaran Raman2016-03-242-0/+51
| | | | | | Differential Revision: http://reviews.llvm.org/D18289 llvm-svn: 264342
* [PGO] Change profile use cc1 option to handle IR level profilesRong Xu2016-03-0211-13/+13
| | | | | | | | | | | | | | | | | | This patch changes cc1 option for PGO profile use from -fprofile-instr-use=<path> to -fprofile-instrument-use-path=<path>. -fprofile-instr-use=<path> is now a driver only option. In addition to decouple the cc1 option from the driver level option, this patch also enables IR level profile use. cc1 option handling now reads the profile header and sets CodeGenOpt ProfileUse (valid values are {None, Clang, LLVM} -- this is a common enum for -fprofile-instrument={}, for the profile instrumentation), and invoke the pipeline to enable the respective PGO use pass. Reviewers: silvas, davidxl Differential Revision: http://reviews.llvm.org/D17737 llvm-svn: 262515
* Test simplificationXinliang David Li2016-02-171-3/+2
| | | | llvm-svn: 261047
* [PGO] Fix issue: explicitly defaulted assignop is not profiledXinliang David Li2016-02-091-0/+32
| | | | | | | Differential Revision: http://reviews.llvm.org/D16947 llvm-svn: 260270
* [PGO] Cover more cases of implicitly generated C++ methodsXinliang David Li2016-02-081-4/+38
| | | | llvm-svn: 260161
* Simplify test casesXinliang David Li2016-02-082-22/+8
| | | | llvm-svn: 260126
* Fix test case problem(caused by clang-formatXinliang David Li2016-02-072-12/+4
| | | | llvm-svn: 260022
* [PGO] add profile/coverage test cases for defaulted ctor/ctorsXinliang David Li2016-02-072-0/+88
| | | | llvm-svn: 260021
* [PGO] cc1 option name change for profile instrumentationRong Xu2016-02-0415-20/+25
| | | | | | | | | | | | This patch changes cc1 option -fprofile-instr-generate to an enum option -fprofile-instrument={clang|none}. It also changes cc1 options -fprofile-instr-generate= to -fprofile-instrument-path=. The driver level option -fprofile-instr-generate and -fprofile-instr-generate= remain intact. This change will pave the way to integrate new PGO instrumentation in IR level. Review: http://reviews.llvm.org/D16730 llvm-svn: 259811
* [PGO] test case cleanupsXinliang David Li2016-01-284-15/+21
| | | | | | | 1. Make test case more focused and robust by focusing on what to be tested (linkage, icall) -- make it easier to validate 2. Testing linkages of data and counter variables instead of names. Counters and data are more relavant to be tested. llvm-svn: 259067
* Clang changes for value profilingBetul Buyukkurt2016-01-231-0/+15
| | | | | | Differential Revision: http://reviews.llvm.org/D8940 llvm-svn: 258650
* Remove setting of inlinehint and cold attributes based on profile dataEaswaran Raman2016-01-042-50/+2
| | | | | | | | | | | NFC. These hints are only used for inlining and the inliner now uses the same criteria to identify hot and cold callees and set appropriate thresholds without relying on these hints. Hence this removed code is superfluous. Differential Revision: http://reviews.llvm.org/D15726 llvm-svn: 256793
* Attach maximum function count to Module when using PGO mode.Easwaran Raman2015-12-172-0/+50
| | | | | | | | This sets the maximum entry count among all functions in the program to the module using module flags. This allows the optimizer to use this information. Differential Revision: http://reviews.llvm.org/D15163 llvm-svn: 255918
* [PGO] make profile prefix even shorter and more readableXinliang David Li2015-12-1515-60/+60
| | | | llvm-svn: 255587
* [PGO] Shorten profile symbol prefixesXinliang David Li2015-12-1415-60/+60
| | | | | | | | | | (test case update) Profile symbols have long prefixes which waste space and creating pressure for linker. This patch shortens the prefixes to minimal length without losing verbosity. Differential Revision: http://reviews.llvm.org/D15503 llvm-svn: 255576
* Revert r255445: adding a new test caseXinliang David Li2015-12-131-11/+0
| | | | llvm-svn: 255447
* Resubmit new test case after adding more constraintXinliang David Li2015-12-131-0/+11
| | | | llvm-svn: 255445
* Revert 255436 : remove test that needs to be refinedXinliang David Li2015-12-121-13/+0
| | | | llvm-svn: 255437
* [PGO] add a test case with -no-integrated-asXinliang David Li2015-12-121-0/+13
| | | | llvm-svn: 255436
* [PGO] Stop using invalid char in instr variable names.Xinliang David Li2015-12-125-7/+7
| | | | | | | (This is part-2 of the patch of r255434 -- fixing test cases, second try) llvm-svn: 255435
* [PGO] Revert r255366: solution incomplete, not handling lambda yetXinliang David Li2015-12-119-13/+13
| | | | llvm-svn: 255368
* [PGO] Stop using invalid char in instr variable names.Xinliang David Li2015-12-119-13/+13
| | | | | | | | | | | | | | | | (This is part-2 of the patch -- fixing test cases) Before the patch, -fprofile-instr-generate compile will fail if no integrated-as is specified when the file contains any static functions (the -S output is also invalid). This patch fixed the issue. With the change, the index format version will be bumped up by 1. Backward compatibility is preserved with this change. Differential Revision: http://reviews.llvm.org/D15243 llvm-svn: 255366
* [PGO] Add a test case to cover version-3 formatXinliang David Li2015-12-112-1/+1
| | | | llvm-svn: 255326
* [PGO] Instrument only base constructors and destructors.Serge Pavlov2015-12-062-10/+49
| | | | | | | | | | | | | | | | Constructors and destructors may be represented by several functions in IR. Only base structors correspond to source code, others are small pieces of code and eventually call the base variant. In this case instrumentation of non-base structors has little sense, this fix remove it. Now profile data of a declaration corresponds to exactly one function in IR, it agrees with the current logic of the profile data loading. This change fixes PR24996. Differential Revision: http://reviews.llvm.org/D15158 llvm-svn: 254876
* [PGO] Test update for revision 253484.Betul Buyukkurt2015-11-181-1/+1
| | | | llvm-svn: 253485
* Fix a soon to be invalid testXinliang David Li2015-10-291-1/+0
| | | | | | | Remove a check that won't be valid when LLVM stops emitting runtime hook user function. llvm-svn: 251611
* Tweak a couple of -fprofile tests in clang/test to accept backslash in path.NAKAMURA Takumi2015-07-101-1/+1
| | | | llvm-svn: 241903
* Remove test that tests referring to the current working directory. YouDaniel Jasper2015-07-101-5/+0
| | | | | | | | | cannot assume that the current working directory is writable in all test environments. I don't know a better way to write this test of hand, lets discuss. Possibly, a better option would be to put these together with other test testing the driver directly. llvm-svn: 241885
* Add GCC-compatible flags -fprofile-generate and -fprofile-use.Diego Novillo2015-07-092-0/+53
| | | | | | | | | | | | | | | | | | This patch adds support for specifying where the profile is emitted in a way similar to GCC. These flags are used to specify directories instead of filenames. When -fprofile-generate=DIR is used, the compiler will generate code to write to <DIR>/default.profraw. The patch also adds a couple of extensions: LLVM_PROFILE_FILE can still be used to override the directory and file name to use and -fprofile-use accepts both directories and filenames. To simplify the set of flags used in the backend, all the flags get canonicalized to -fprofile-instr-{generate,use} when passed to the backend. The decision to use a default name for the profile is done in the driver. llvm-svn: 241825
* Fix a couple of tests in clang/test to match "x86_thiscallcc" introduced in ↵NAKAMURA Takumi2015-06-301-2/+2
| | | | | | r240971. llvm-svn: 241047
* Account for calling convention specifiers in function definitions in IR test ↵David Blaikie2015-06-293-9/+9
| | | | | | | | | | | | | cases Several tests wouldn't pass when executed on an armv7a_pc_linux triple due to the non-default arm_aapcs calling convention produced on the function definitions in the IR output. Account for this with the application of a little regex. Patch by Ying Yi. llvm-svn: 240971
* Display profile file name when emitting a file not found diagnostic.Diego Novillo2015-06-251-1/+1
| | | | | | | | | When a profile file cannot be opened, we used to display just the error message but not the name of the profile the compiler was trying to open. This will become useful in the next set of patches that introduce GCC-compatible flags to specify profiles. llvm-svn: 240715
* Fix PPC failure. Adjust CHECK pattern.Diego Novillo2015-05-281-2/+2
| | | | llvm-svn: 238413
* Set function entry counts with -fprofile-instr-use.Diego Novillo2015-05-272-0/+29
| | | | | | This generates function entry counts from instrumentation profiles. llvm-svn: 238360
* InstrProf: Change this triple back to %itanium_abi_tripleJustin Bogner2015-05-201-1/+1
| | | | | | | In my rush to fix the linux bots in r237805, I accidentally committed a change to the triple. Revert that part. llvm-svn: 237806
* InstrProf: Remove darwin-specific section names from this testJustin Bogner2015-05-201-5/+5
| | | | llvm-svn: 237805
* InstrProf: Increment the profile counter for all types of destructorJustin Bogner2015-05-201-0/+30
| | | | | | | | | | | | -fprofile-instr-generate does not emit counter increment intrinsics for Dtor_Deleting and Dtor_Complete destructors with assigned counters. This causes unnecessary [-Wprofile-instr-out-of-date] warnings during profile-use runs even if the source has never been modified since profile collection. Patch by Betul Buyukkurt. Thanks! llvm-svn: 237804
* InstrProf: Update name of compiler-rt routine for setting filenameJustin Bogner2015-05-121-2/+2
| | | | | | Patch by Teresa Johnson. llvm-svn: 237187
* Changed renaming of local symbols by inserting a dot vefore the numeric suffixSunil Srivastava2015-05-122-3/+3
| | | | | | | details in http://reviews.llvm.org/D9483 goes with llvm checkin r237150 llvm-svn: 237151
* InstrProf: Add a couple of checks to this testJustin Bogner2015-05-011-0/+15
| | | | | | | "Don't crash" tests are silly, we might as well check that the counters are consistent here. llvm-svn: 236361
* InstrProf: Support for setting profile output from command lineJustin Bogner2015-04-301-0/+10
| | | | | | | | | | | | | | | | This change is the third of 3 patches to add support for specifying the profile output from the command line via -fprofile-instr-generate=<path>, where the specified output path/file will be overridden by the LLVM_PROFILE_FILE environment variable. This patch adds the necessary support to the clang frontend, and adds a new test. The compiler-rt and llvm parts are r236055 and r236288, respectively. Patch by Teresa Johnson. Thanks! llvm-svn: 236289
* InstrProf: Fix handling of profile counters in the body of range based forJustin Bogner2015-04-302-0/+57
| | | | | | | | | We were assigning the counter for the body of the loop to the loop variable initialization for some reason here, but our tests completely lacked coverage for range-for loops. This fixes that and makes the logic generally more similar to the logic for a regular for. llvm-svn: 236277
* InstrProf: Match a bit less strictly - some targets may add signextJustin Bogner2015-04-281-2/+2
| | | | | | | | Notably, this bot didn't like it: http://lab.llvm.org:8011/builders/clang-cmake-mips/builds/5117 llvm-svn: 235968
* InstrProf: Mark code regions after throw expressions as unreachableJustin Bogner2015-04-282-2/+30
| | | | | | | We weren't setting regions as being unreachable after C++ throw expressions, leading to incorrect count propagations. llvm-svn: 235967
* Fix this test so it doesn't try to open a file to write to the source treeDavid Blaikie2015-04-061-1/+1
| | | | llvm-svn: 234173
OpenPOWER on IntegriCloud