- Dec 11, 2013
-
-
Kostya Serebryany authored
llvm-svn: 197040
-
Rui Ueyama authored
llvm-svn: 197039
-
Rui Ueyama authored
Before this patch, we had the following class hierarchy. Chunk -> AtomChunk -> SectionChunk -> GenericSectionChunk -> BaseRelocChunk -> HeaderChunk Chunk represented the generic concept of contiguous range in an output file. AtomChunk represented a chunk consists of atoms. That class hierarchy had many issues: 1) BaseRelocChunk does not really consist of atoms, so inheriting from AtomChunk was plainly wrong, and 2) the hierarchy is unecessarily too deep. This patch correct them. The new hierachy is shown below. Chunk -> SectionChunk -> AtomChunk -> BaseRelocChunk -> HeaderChunk In the new hierarchy, AtomChunk represents a chunk consists of atoms. Other types of sections (currently only BaseRelocChunk) should inherit directly from SectionChunk. llvm-svn: 197038
-
Kostya Serebryany authored
[asan] if verbosity>=2, print the fake stack usage stats at thread exit; No functionality change in non-verboze mode llvm-svn: 197037
-
David Tweed authored
With the introduction of explicit address space casts into LLVM, there's a need to provide a new cast kind the front-end can create for C/OpenCL/CUDA and code to produce address space casts from those kinds when appropriate. Patch by Michele Scandale! llvm-svn: 197036
-
Daniel Jasper authored
llvm-svn: 197035
-
Daniel Jasper authored
Includes might always pull in arbitrary header or data files outside of modules. Among others, this includes builtin includes, which do not have a module (story) yet. Also cleanup implementation of ModuleMap::findModuleForHeader() to be non-recursive. llvm-svn: 197034
-
Tim Northover authored
The soft-float variants of (embedded) libclang_rt only make sense for ARM, so there's no point in trying to build them if the compiler is only capable of targeting x86. llvm-svn: 197033
-
Richard Sandiford authored
In such cases it's often better to test the result of the negation instead, since the negation also sets CC. llvm-svn: 197032
-
Evgeniy Stepanov authored
llvm-svn: 197031
-
Richard Sandiford authored
DAGCombiner could fold (truncate (load)) -> smaller load if the original load was the width of the truncation result or wider. This patch extends it to handle cases where the original load was narrower (and so the extension type stays the same). llvm-svn: 197030
-
Evgeniy Stepanov authored
Patch by Qin Zhao. llvm-svn: 197029
-
Tim Northover authored
We need to filter out architectures that the compiler hasn't been built to target (most likely the ARM ones) before attemptint to build a version of libcompiler_rt. This can result in a completely empty library (e.g. soft-float doesn't have any x86 variants), in which case we shouldn't even try the build llvm-svn: 197028
-
Rui Ueyama authored
Also removed unused field. llvm-svn: 197027
-
Evgeniy Stepanov authored
Before we did it lazily on the first stack unwind in the thread. It resulted in deadlock when the unwind was caused by memory allocation inside pthread_getattr_np: pthread_getattr_np <<< not reentable GetThreadStackTopAndBottom __interceptor_realloc pthread_getattr_np llvm-svn: 197026
-
Rui Ueyama authored
No functionality change. llvm-svn: 197025
-
Renato Golin authored
This is an experimental feature, where -integrated-as will be on by default on ARM/Thumb. We aim to detect the missing features so that the next release is stable. Updating the ReleaseNotes, too. Also moving the AArch64 into the same place. llvm-svn: 197024
-
Sergey Matveev authored
llvm-svn: 197022
-
Daniel Jasper authored
Specifically, we want to warn only for direct layering violations for the modules we are calling clang on. This temporarily unblocks http://llvm-reviews.chandlerc.com/D2374 Once that is in, we'll also want to investigate whether to check the layering in the build step of modules that we build transitively. llvm-svn: 197021
-
Rui Ueyama authored
Because sections no longer have trailing NULL bytes, size() and rawSize() now return the same value. llvm-svn: 197020
-
Rui Ueyama authored
llvm-svn: 197019
-
Rui Ueyama authored
llvm-svn: 197018
-
Manuel Klimek authored
llvm-svn: 197017
-
Rui Ueyama authored
This patch is to basically move the functionality to construct Data Directory from IdataPass to WriterPECOFF. Data Directory is a part of the PE/COFF header and contains the addresses of the import tables. We used to represent the link from Data Directory to the import tables as relocation references. The idea behind it is that, because relocation references are processed by the Writer, we wouldn't have to do anything special to fill the addresses of the import tables. I thought that the addresses would be set "automatically". But it turned out that that design made the pass and the writer rather complicated. In order to make relocation references between Data Directory to the import tables, these data structures needed to be represented as Atom. However, because Data Directory is not a section content but a part of the PE/COFF header, it did not fit well as an Atom. So we ended up having complicated code both in IdataPass and the writer. This patch simplifies it. One side effect of this patch is that we now have ".idata.a", ".idata.d" and "idata.t" sections for the import address table, the import directory table, and the import lookup table. The writer looks for the sections by name to find the start addresses of the sections. We probably should have a better way to find a specific atom from the core linking result, but currently using the section name seems to be the easiest way to do that. The Windows loader do not care about the import table's section layout. llvm-svn: 197016
-
Alexey Samsonov authored
llvm-svn: 197015
-
Alexey Samsonov authored
llvm-svn: 197014
-
Rui Ueyama authored
llvm-svn: 197009
-
Rui Ueyama authored
llvm-svn: 197008
-
Rui Ueyama authored
llvm-svn: 197007
-
Rui Ueyama authored
llvm-svn: 197006
-
Rafael Espindola authored
The extra CHECK and CHECK-NEXT are there to show that we don't print a linker private symbol on linux. llvm-svn: 197003
-
Rui Ueyama authored
If section size is not multiple of 512, the writer added NULL bytes at the end of it to make it so. That is not required by the PE/COFF spec, and the MSVC's linker does not do that too. So we don't need to do that, too. llvm-svn: 197002
-
Andrew Trick authored
This hook reverses the order of assignment for local live ranges. This will generally allocate shorter local live ranges first. For targets with many registers, this could reduce regalloc compile time by a large factor. It should still achieve optimal coloring; however, it can change register eviction decisions. It is disabled by default for two reasons: (1) Top-down allocation is simpler and easier to debug for targets that don't benefit from reversing the order. (2) Bottom-up allocation could result in poor evicition decisions on some targets affecting the performance of compiled code. llvm-svn: 197001
-
Richard Smith authored
any local extern declaration, not just a local extern function. llvm-svn: 197000
-
Reed Kotler authored
llvm-svn: 196999
-
Kevin Qin authored
llvm-svn: 196998
-
Warren Hunt authored
Prior to this patch, the alignment imposed by virtual bases only included direct virtual bases. This patch fixes it to look at all virtual bases. llvm-svn: 196997
-
Rafael Espindola authored
llvm-svn: 196996
-
Richard Smith authored
list, each element of the initializer list may provide more than one of the base elements of the array. Be sure to initialize the right type and bump the array pointer by the right amount. llvm-svn: 196995
-
Rui Ueyama authored
llvm-svn: 196994
-