| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 180685
|
| |
|
|
| |
llvm-svn: 180684
|
| |
|
|
|
|
|
| |
Naturally, we should be able to pass in extra instructions, not just
extra blocks.
llvm-svn: 180667
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This seems to me an obvious place to allow target passes to annotate
memory operations. There are plenty of bits, and I'm not aware of
another good way for early target passes to propagate hints along to
later passes. Target independent transforms can simply preserve them,
the way they preserve the other flags. Like MachineMemOperands in
general, if the target flags are lost we must still generate correct
code.
This has lots of uses, but I want this flexibility now to make it
easier to work with the new MachineTraceMetrics
analysis. MachineTraceMetrics can gather a lot of information about
instructions based on the surrounding code. This information can be
used to influence postRA machine passes that don't work on SSA form.
llvm-svn: 180666
|
| |
|
|
| |
llvm-svn: 180665
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to determine whether or not we're on a darwin platform for debug code
emitting.
Solves the problem of a module with no triple on the command line
and no triple in the module using non-gdb ok features on darwin. Fix
up the member-pointers test to check the correct things for cross
platform (DW_FORM_flag is a good prefix).
Unfortunately no testcase because I have no ideas how to test something
without a triple and without a triple in the module yet check
precisely on two platforms. Ideas welcome.
llvm-svn: 180660
|
| |
|
|
|
|
|
|
| |
We switch the order of offset and field type to make TBAAStructType node
(name, parent node, offset) similar to scalar TBAA node (name, parent node).
TypeIsImmutable is added to TBAAStructTag node.
llvm-svn: 180654
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Clarify documentation and API to make the difference between register and
register-indirect addressed locations more explicit. Put in a comment
to point out that with the current implementation we cannot specify
a register-indirect location with offset 0 (a breg 0 in DWARF).
No functionality change intended.
rdar://problem/13658587
llvm-svn: 180641
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For Mach-O there were 2 implementations for parsing object files. A
standalone llvm/Object/MachOObject.h and llvm/Object/MachO.h which
implements the generic interface in llvm/Object/ObjectFile.h.
This patch adds the missing features to MachO.h, moves macho-dump to
use MachO.h and removes ObjectFile.h.
In addition to making sure that check-all is clean, I checked that the
new version produces exactly the same output in all Mach-O files in a
llvm+clang build directory (including executables and shared
libraries).
To test the performance, I ran macho-dump over all the files in a
llvm+clang build directory again, but this time redirecting the output
to /dev/null. Both the old and new versions take about 4.6 seconds
(2.5 user) to finish.
llvm-svn: 180624
|
| |
|
|
|
|
| |
rdar://problem/13056109
llvm-svn: 180618
|
| |
|
|
|
|
|
|
|
|
|
| |
Since we can't guarantee that the original dbg.declare instrinsic
is removed by LowerDbgDeclare(), we need to make sure that we are
not inserting the same dbg.value intrinsic over and over.
This removes tons of redundant DIEs when compiling optimized code.
rdar://problem/13056109
llvm-svn: 180615
|
| |
|
|
| |
llvm-svn: 180575
|
| |
|
|
| |
llvm-svn: 180574
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is modelled on the Mach-O linker options implementation and should
support a Clang implementation of #pragma comment(lib/linker).
Reviewers: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D724
llvm-svn: 180569
|
| |
|
|
|
|
|
|
|
|
| |
getRelocationAddress is for dynamic libraries and executables,
getRelocationOffset for relocatable objects.
Mark the getRelocationAddress of COFF and MachO as not implemented yet. Add a
test of ELF's. llvm-readobj -r now prints the same values as readelf -r.
llvm-svn: 180259
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit 07f03923137a91e3cca5d7fc075a22f8c9baf33a.
Looks like it broke the valgrind bot:
http://lab.llvm.org:8011/builders/llvm-x86_64-linux-vg_leak/builds/649
llvm-svn: 180249
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit 8c31b298149ca3c3f2bbd9e8aa9a01c4d91f3d74.
It looks like this commit broke some bots:
http://lab.llvm.org:8011/builders/llvm-ppc64-linux2/builds/5209
llvm-svn: 180248
|
| |
|
|
|
|
| |
Patch by Filip Pizlo
llvm-svn: 180229
|
| |
|
|
| |
llvm-svn: 180225
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For now, we just reschedule instructions that use the copied vregs and
let regalloc elliminate it. I would really like to eliminate the
copies on-the-fly during scheduling, but we need a complete
implementation of repairIntervalsInRange() first.
The general strategy is for the register coalescer to eliminate as
many global copies as possible and shrink live ranges to be
extended-basic-block local. The coalescer should not have to worry
about resolving local copies (e.g. it shouldn't attemp to reorder
instructions). The scheduler is a much better place to deal with local
interference. The coalescer side of this equation needs work.
llvm-svn: 180193
|
| |
|
|
| |
llvm-svn: 180188
|
| |
|
|
| |
llvm-svn: 180159
|
| |
|
|
|
|
| |
Patch by Tom Stellard. (Committed while he's afk per request)
llvm-svn: 180157
|
| |
|
|
| |
llvm-svn: 180147
|
| |
|
|
| |
llvm-svn: 180146
|
| |
|
|
| |
llvm-svn: 180112
|
| |
|
|
| |
llvm-svn: 180104
|
| |
|
|
| |
llvm-svn: 180100
|
| |
|
|
| |
llvm-svn: 180084
|
| |
|
|
|
|
| |
compression/uncompression in selected LLVM tools.
llvm-svn: 180083
|
| |
|
|
|
|
|
| |
The value isn't actually used, and setting it emits a COFF specific
directive.
llvm-svn: 180064
|
| |
|
|
|
|
|
| |
or the C++ files themselves. This enables people to use
just a C compiler to interoperate with LLVM.
llvm-svn: 180063
|
| |
|
|
|
|
|
| |
the MCParsedAsmOperand.
Part of rdar://13663589
llvm-svn: 180054
|
| |
|
|
|
|
|
| |
name computation is expensive, this helps save about 25% of the time spent in
this function.
llvm-svn: 180049
|
| |
|
|
| |
llvm-svn: 180043
|
| |
|
|
|
|
|
|
| |
now taken care of by the frontend, which allows us to parse arbitrary C/C++
variables.
Part of rdar://13663589
llvm-svn: 180037
|
| |
|
|
|
|
|
| |
change indended.
Part of rdar://13663589
llvm-svn: 180028
|
| |
|
|
| |
llvm-svn: 180023
|
| |
|
|
|
|
| |
Found by -Wdocumentation.
llvm-svn: 180021
|
| |
|
|
|
|
|
| |
Also add a check for llvm.used in the verifier and simplify clients now that
they can assume they have a ConstantArray.
llvm-svn: 180019
|
| |
|
|
|
|
|
| |
other mach-o object file as well.
TODO: One interface to rule them all.
llvm-svn: 180009
|
| |
|
|
| |
llvm-svn: 180008
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit r179840 with a fix to test/DebugInfo/two-cus-from-same-file.ll
I'm not sure why that test only failed on ARM & MIPS and not X86 Linux, even
though the debug info was clearly invalid on all of them, but this ought to fix
it.
llvm-svn: 179996
|
| |
|
|
|
|
| |
'returned'
llvm-svn: 179983
|
| |
|
|
|
|
|
|
| |
I think it's almost impossible to fold atomic fences profitably under
LLVM/C++11 semantics. As a result, this is now unused and just
cluttering up the target interface.
llvm-svn: 179940
|
| |
|
|
| |
llvm-svn: 179939
|
| |
|
|
|
|
| |
parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter).
llvm-svn: 179925
|
| |
|
|
|
|
| |
comment.
llvm-svn: 179908
|
| |
|
|
|
|
|
| |
trying to move as much FastISel logic as possible out of the main path in
SelectionDAGISel - intermixing them just adds confusion.
llvm-svn: 179902
|
| |
|
|
| |
llvm-svn: 179901
|