summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp
Commit message (Collapse)AuthorAgeFilesLines
* msabi: Fix exponential mangling time for even more contrived inputsNico Weber2019-06-041-0/+22
| | | | | | | | | | | | | | | This is a follow-up to r362293 which fixed exponential time needed for mangling certain templates. This fixes the same issue if that template pattern happens in template arguments > 10: The first ten template arguments can use back references, and r362293 added caching for back references. For latter arguments, we have to add a cache for the mangling itself instead. Fixes PR42091 even more. Differential Revision: https://reviews.llvm.org/D62780 llvm-svn: 362560
* msabi: Fix exponential mangling time for certain pathological inputsNico Weber2019-06-011-0/+41
| | | | | | | | | | | | | | | | | Template back references used to be recursively recomputed, add a memoization cache to cut down on this. Since there are now two different types of argument maps, rename the existing TypeBackReferences to FunArgBackReferences, and rename mangleArgumentType() to mangleFunctionArgumentType(). Fixes PR42091, the input there now takes 50ms instead of 7s to compile. No intended behavior change. Differential Revision: https://reviews.llvm.org/D62746 llvm-svn: 362293
* [MS] Don't escape MS C++ names with \01Reid Kleckner2018-03-161-33/+33
| | | | | | | It is not needed after LLVM r327734. Now it will be easier to copy-paste IR symbol names from Clang. llvm-svn: 327738
* Remove the -cxx-abi command-line flag.Hans Wennborg2014-01-141-1/+1
| | | | | | | | | | | | | | | This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples, Itanium otherwise. It's no longer possible to do weird combinations. To be able to run a test with a specific ABI without constraining it to a specific triple, new substitutions are added to lit: %itanium_abi_triple and %ms_abi_triple can be used to get the current target triple adjusted to the desired ABI. For example, if the test suite is running with the i686-pc-win32 target, %itanium_abi_triple will expand to i686-pc-mingw32. Differential Revision: http://llvm-reviews.chandlerc.com/D2545 llvm-svn: 199250
* [ms-cxxabi] Don't consider function templates for name backrefsReid Kleckner2013-07-131-1/+29
| | | | | | | | | | | | | | They don't seem to be used for back references, presumably because a function template is unlikely to reoccur, while a class template name may reoccur as a type. This fixes a mangling issue for llvm::hash_combine() in Hashing.h. Reviewers: timurrrr Differential Revision: http://llvm-reviews.chandlerc.com/D1078 llvm-svn: 186233
* [-cxx-abi microsoft] Also spill the argument-back-references context when ↵Timur Iskhodzhanov2012-11-291-0/+2
| | | | | | mangling templates llvm-svn: 168862
* Remove outdated FIXME; should have removed that in r160782Timur Iskhodzhanov2012-11-271-2/+0
| | | | llvm-svn: 168698
* Add more tests for PR13207 (Mangling of template back references with ↵Timur Iskhodzhanov2012-07-261-0/+25
| | | | | | -cxx-abi microsoft) now that PR13389 is fixed (mangling of return types) llvm-svn: 160782
* Fix PR13207 (Mangling of templates with back references when using -cxx-abi ↵Timur Iskhodzhanov2012-07-241-24/+65
| | | | | | microsoft) llvm-svn: 160667
* [Windows] Split the back reference tests into two separate files as the ↵Timur Iskhodzhanov2012-07-121-0/+99
templates are getting hairy llvm-svn: 160131
OpenPOWER on IntegriCloud