llvm-project/clang/lib/Frontend
Teresa Johnson 7ed8124d46 [HeapProf] Clang and LLVM support for heap profiling instrumentation
See RFC for background:
http://lists.llvm.org/pipermail/llvm-dev/2020-June/142744.html

Note that the runtime changes will be sent separately (hopefully this
week, need to add some tests).

This patch includes the LLVM pass to instrument memory accesses with
either inline sequences to increment the access count in the shadow
location, or alternatively to call into the runtime. It also changes
calls to memset/memcpy/memmove to the equivalent runtime version.
The pass is modeled on the address sanitizer pass.

The clang changes add the driver option to invoke the new pass, and to
link with the upcoming heap profiling runtime libraries.

Currently there is no attempt to optimize the instrumentation, e.g. to
aggregate updates to the same memory allocation. That will be
implemented as follow on work.

Differential Revision: https://reviews.llvm.org/D85948
2020-08-27 08:50:35 -07:00
..
Rewrite [AST][FPEnv] Keep FP options in trailing storage of CallExpr 2020-07-24 12:04:19 +07:00
ASTConsumers.cpp [clang][NFC] Store a pointer to the ASTContext in ASTDumper and TextNodeDumper 2020-07-03 13:59:22 +01:00
ASTMerge.cpp [ASTImporter] Mark erroneous nodes in shared st 2019-07-01 15:37:07 +00:00
ASTUnit.cpp ASTUnit::FileDecls: Use unique_ptr to simplify memory management 2020-04-28 17:59:45 -07:00
CMakeLists.txt [CMake] Make `intrinsics_gen` dependency unconditional. 2020-07-17 16:43:17 -07:00
ChainedDiagnosticConsumer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ChainedIncludesSource.cpp clang/Modules: Finish renaming CompilerInstance::ModuleManager, NFC. 2020-02-21 13:56:50 -08:00
CompilerInstance.cpp Reland "[FPEnv][Clang][Driver] Disable constrained floating point on targets lacking support." 2020-07-10 08:49:45 -04:00
CompilerInvocation.cpp [HeapProf] Clang and LLVM support for heap profiling instrumentation 2020-08-27 08:50:35 -07:00
CreateInvocationFromCommandLine.cpp [MC] Pass down argv0 & cc1 cmd-line to the back-end and store in MCTargetOptions 2020-06-18 09:17:14 -04:00
DependencyFile.cpp clang-cl: Add a `/showIncludes:user` flag. 2020-02-25 09:43:52 -05:00
DependencyGraph.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DiagnosticRenderer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FrontendAction.cpp [clang][nearly-NFC] Remove some superfluous uses of NamedDecl::getNameAsString 2020-08-05 13:54:37 +01:00
FrontendActions.cpp [X86] Default to -mtune=generic unless -march is passed to the driver. Add TuneCPU to the AST serialization 2020-08-26 14:52:03 -07:00
FrontendOptions.cpp Recognize *.hxx as a C++ header extension, like *.hpp. 2020-06-08 11:50:34 +02:00
FrontendTiming.cpp Fix file headers. NFC 2019-03-01 06:49:51 +00:00
HeaderIncludeGen.cpp clang-cl: Add a `/showIncludes:user` flag. 2020-02-25 09:43:52 -05:00
InitHeaderSearch.cpp [clang][Driver] Implement AddClangSystemIncludeArgs and HasNativeLLVMSupport for the OpenBSD clang driver. 2020-08-23 20:08:40 -04:00
InitPreprocessor.cpp [OpenMP] Upgrade default version of OpenMP to 5.0 2020-06-25 07:13:05 +00:00
InterfaceStubFunctionsConsumer.cpp [llvm][clang][IFS] Enhancing the llvm-ifs yaml format for symbol lists. 2020-04-01 10:49:06 -04:00
LayoutOverrideSource.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LogDiagnosticPrinter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
ModuleDependencyCollector.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
MultiplexConsumer.cpp [AST] Add missing MultiplexConsumer::CompleteExternalDeclaration 2019-12-22 19:00:48 -08:00
PrecompiledPreamble.cpp Correctly set CompilingPCH in PrecompilePreambleAction. 2020-08-10 17:49:23 +02:00
PrintPreprocessedOutput.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
SerializedDiagnosticPrinter.cpp CrashTracer: clang at clang: llvm::BitstreamWriter::ExitBlock 2020-07-09 20:27:33 -07:00
SerializedDiagnosticReader.cpp Bitstream reader: Fix undefined behavior seen after rL364464 2019-07-05 20:22:40 +00:00
TestModuleFileExtension.cpp [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
TestModuleFileExtension.h [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
TextDiagnostic.cpp [clang] Fix the canonicalization of paths in -fdiagnostics-absolute-paths 2019-12-20 09:16:33 +01:00
TextDiagnosticBuffer.cpp Fix more implicit conversions. Getting closer to having clang working with gcc 5 again 2020-01-29 02:57:59 +01:00
TextDiagnosticPrinter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
VerifyDiagnosticConsumer.cpp [clang][VerifyDiagnosticConsumer] Support filename wildcards 2020-05-14 15:15:49 -07:00