| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 210450
|
|
|
|
|
|
|
|
|
|
|
|
| |
I saw at least a memory leak or two from inspection (on probably
untested error paths) and r206991, which was the original inspiration
for this change.
I ran this idea by Jim Grosbach a few weeks ago & he was OK with it.
Since it's a basically mechanical patch that seemed sufficient - usual
post-commit review, revert, etc, as needed.
llvm-svn: 210427
|
|
|
|
|
|
|
|
|
|
| |
link.exe requires that the text section has the IMAGE_SCN_MEM_16BIT flag set.
Otherwise, it will treat the function as ARM. If this occurs, then jumps to the
function will fail, switching from thumb to ARM mode execution.
With this change, it is possible to link using the MSVC linker as well.
llvm-svn: 210415
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GAS documents the .type directive as having an optional comma following the key
symbol name when using the STT_<TYPE_IN_UPPER_CASE> form. However, it treats
the comma as optional in all cases. This makes the IAS support both forms of
inputs. Furthermore, the prefixed forms take either the upper case name or the
lower case alias.
The tests are split into two separate sets as the hash character serves as a
comment character on x86, which is tested in the second set by using arm-elf
which uses the at symbol as a comment character.
llvm-svn: 210407
|
|
|
|
|
|
|
|
| |
This adjusts the section setup for the windows-itanium environment. This
environment does not report to be a known windows msvc environment, even though
it is (nearly) identical to the MSVC environment for C code.
llvm-svn: 210406
|
|
|
|
|
|
|
|
| |
Add some whitespace, combine two sequential conditionals into a single one.
Reformat some section definitions to maintain uniformity in the function.
NFC.
llvm-svn: 210405
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prevent the early elimination of sections in the object writer. There may be
references to the section itself by other symbols, which may potentially not be
possible to resolve. ML (Visual Studio's Macro Assembler) also seems to retain
empty sections.
The elimination of symbols and sections which are unused should really occur at
the link phase. This will not cause any change in the resulting binary, simply
in the generated object files.
The adjustments to the other unit tests account for the fluctuating section
index caused by the appearance of sections which were previously discarded.
llvm-svn: 210373
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Section association cannot use just the section name as many
sections can have the same name. With this patch, the comdat symbol in
an assoc section is interpreted to mean a symbol in the associated
section and the mapping is discovered from it.
* Comdat symbols were not being set correctly. Instead we were getting
whatever was output first for that section.
A consequence is that associative sections now must use .section to
set the association. Using .linkonce would not work since it is not
possible to change a sections comdat symbol (it is used to decide if
we should create a new section or reuse an existing one).
This includes r210298, which was reverted because it was asserting
on an associated section having the same comdat as the associated
section.
llvm-svn: 210367
|
|
|
|
|
|
| |
Windows
llvm-svn: 210317
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We extended the .section syntax to allow multiple sections with the
same name but different comdats, but currently we don't make sure that
the output section has that comdat symbol.
That happens to work with the code llc produces currently because it looks like
.section secName, "dr", one_only, "COMDATSym"
.globl COMDATSym
COMDATSym:
....
but that is not very friendly to anyone coding in assembly or even to
llc once we get comdat support in the IR.
This patch changes the coff object writer to make sure the comdat symbol is
output just after the section symbol, as required by the coff spec.
llvm-svn: 210298
|
|
|
|
|
|
|
|
|
| |
For MIPS, we have to encode the personality routine with
an indirect pointer to absptr; otherwise, some link warning
warning will be raised, and the program might crash in some
early MIPS Android device.
llvm-svn: 209907
|
|
|
|
|
|
|
|
|
| |
This makes LLVM create N_INDR aliases (to be resolved by the linker) when
appropriate.
rdar://problem/15125513
llvm-svn: 209894
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D3860
llvm-svn: 209659
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit starts with a "git mv ARM64 AArch64" and continues out
from there, renaming the C++ classes, intrinsics, and other
target-local objects for consistency.
"ARM64" test directories are also moved, and tests that began their
life in ARM64 use an arm64 triple, those from AArch64 use an aarch64
triple. Both should be equivalent though.
This finishes the AArch64 merge, and everyone should feel free to
continue committing as normal now.
llvm-svn: 209577
|
|
|
|
|
|
|
| |
Properly initialise HadError to false during construction. Detected as
use-of-uninitialised variable by MSan!
llvm-svn: 209393
|
|
|
|
|
|
|
|
|
| |
Now that clang can be used as an assembler via the IAS, invalid assembler inputs
would cause the assertions to trigger. Although we cannot recover from the
errors here, nor provide caret diagnostics, attempt to handle them slightly more
gracefully by reporting a fatal error.
llvm-svn: 209387
|
|
|
|
|
|
|
|
|
| |
This reverts commit r208930, r208933, and r208975.
It seems not all fission consumers are ready to handle this behavior.
Reverting until tools are brought up to spec.
llvm-svn: 209338
|
|
|
|
|
|
|
|
|
| |
Add support to allow a target specific COFF object writer to restrict the
recorded resolutions in the emitted object files. This is motivated by the need
in Windows on ARM, where an intermediate relocation needs to be prevented from
being emitted in the object file.
llvm-svn: 209336
|
|
|
|
|
|
|
|
| |
Permit active macro expansions when terminating the assembler if there were
errors during the expansion. This would only trigger on invalid input when
built with assertions.
llvm-svn: 209309
|
|
|
|
|
|
|
|
|
| |
The .drectve section should be marked as IMAGE_SCN_LNK_REMOVE. This matches what
the MSVC toolchain does and accurately reflects that this section should not be
emitted into the final binary. This section is merely information for the
linker, comprising of additional linker directives.
llvm-svn: 209273
|
|
|
|
|
|
| |
set appropriately.
llvm-svn: 209258
|
|
|
|
|
|
|
|
| |
llvm::sys::path.
http://reviews.llvm.org/D3687
llvm-svn: 208980
|
|
|
|
| |
llvm-svn: 208975
|
|
|
|
|
|
| |
No functional change.
llvm-svn: 208932
|
|
|
|
|
|
|
|
|
| |
Since type units in the dwo file are handled by a debug aware tool, they
don't need to leverage the ELF comdat grouping to implement
deduplication. Avoid creating all the .group sections for these as a
space optimization.
llvm-svn: 208930
|
|
|
|
| |
llvm-svn: 208839
|
|
|
|
|
|
| |
change.
llvm-svn: 208832
|
|
|
|
| |
llvm-svn: 208723
|
|
|
|
|
|
| |
Code depends on the assembler and linker to fix things up...
llvm-svn: 208715
|
|
|
|
|
|
| |
This lets us delete the MCAsmStreamer implementation. No functionality change.
llvm-svn: 208570
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 208569
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 208567
|
|
|
|
|
|
|
| |
Now that the asm streamer doesn't use it, the MCStreamer doesn't need to know
about it.
llvm-svn: 208562
|
|
|
|
| |
llvm-svn: 208561
|
|
|
|
| |
llvm-svn: 208559
|
|
|
|
| |
llvm-svn: 208558
|
|
|
|
| |
llvm-svn: 208557
|
|
|
|
| |
llvm-svn: 208555
|
|
|
|
| |
llvm-svn: 208554
|
|
|
|
| |
llvm-svn: 208553
|
|
|
|
| |
llvm-svn: 208551
|
|
|
|
|
|
| |
We were already always passing true, this just removes the option.
llvm-svn: 208205
|
|
|
|
|
|
| |
encodings as x86. Use this exception model for NetBSD.
llvm-svn: 208166
|
|
|
|
| |
llvm-svn: 208132
|
|
|
|
| |
llvm-svn: 208130
|
|
|
|
|
|
|
|
| |
This removes arguments passed everywhere and allows the use of
standard iteration over lists.
Should be no functional change.
llvm-svn: 208127
|
|
|
|
|
|
|
|
| |
fall back to the normal path without a cpu. While doing this fix
llc to just exit when we don't have a module to process instead of
asserting.
llvm-svn: 208102
|
|
|
|
|
|
| |
this reapplies 208012 and 208002.
llvm-svn: 208037
|
|
|
|
|
|
| |
used via dragonegg for now.
llvm-svn: 208016
|
|
|
|
|
|
| |
and inline it into its caller.
llvm-svn: 208012
|