Julien Lerouge
b2c1721752
Fix a source of non determinism in FindUsedTypes, use a SetVector instead of a
...
set.
rdar://9423996
llvm-svn: 131283
2011-05-13 05:20:42 +00:00
Devang Patel
dd08ae41c6
Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.
...
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g
llvm-svn: 131244
2011-05-12 21:29:42 +00:00
Devang Patel
b865dd6a20
Let Objective-C front-end identify class extension, in dwarf output, using an attribute DW_AT_APPLE_objc_class_extension.
...
llvm-svn: 131238
2011-05-12 19:06:16 +00:00
Evan Cheng
5ff60c7364
Re-commit 131172 with fix. MachineInstr identity checks should check dead
...
markers. In some cases a register def is dead on one path, but not on
another.
This is passing Clang self-hosting.
llvm-svn: 131214
2011-05-12 00:56:58 +00:00
Andrew Trick
25d4fce092
Bugpoint support for miscompilations that result in a crash.
...
This change allows bugpoint to pinpoint the "opt" pass and bitcode
segment responsible for a crash caused by miscompilation. At least it
works well for me now, without having to create any custom execution
wrappers.
llvm-svn: 131186
2011-05-11 16:31:24 +00:00
Bill Wendling
453a924d29
Give the 'eh.sjlj.dispatchsetup' intrinsic call the value coming from the setjmp
...
intrinsic call. This prevents it from being reordered so that it appears
*before* the setjmp intrinsic (thus making it completely useless).
<rdar://problem/9409683>
llvm-svn: 131174
2011-05-11 01:11:55 +00:00
Bill Wendling
68a363dd78
Fix comment.
...
llvm-svn: 131173
2011-05-11 01:08:39 +00:00
Nick Lewycky
5a1035a0dc
Revert r131155 for now. It makes VMCore depend on Analysis and Transforms
...
headers.
llvm-svn: 131159
2011-05-10 22:16:06 +00:00
David Chisnall
17ae92b2d8
Add support for plugins add passes to the default set of passes. The standard set of passes used by front ends can now be modified by LLVM plugins, without needing to modify any front ends.
...
Still to do:
- Allow replacing / removing passes (infrastructure there, just needs an infrastructure exposed)
- Defining sets of passes to be added or removed as a group
- Extending the support to allow user-defined groups of optimisations
- Allow plugins to be specified for loading automatically (e.g. from plugins.conf or some similar mechanism)
Reviewed by Nick Lewycky.
llvm-svn: 131155
2011-05-10 21:36:48 +00:00
Rafael Espindola
9b3e6a9cb4
Rename DwarfRequiresRelocationForStmtList to
...
DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList.
llvm-svn: 131148
2011-05-10 20:35:05 +00:00
Rafael Espindola
92dc58fea6
Use .cfi_sections to put the unwind info in .debug_frame when possible. With
...
this clang will use .debug_frame in, for example,
clang -g -c -m32 test.c
This matches gcc's behaviour. It looks like .debug_frame is a bit bigger
than .eh_frame, but has the big advantage of not being allocated.
llvm-svn: 131140
2011-05-10 18:39:09 +00:00
Rafael Espindola
b7c942431f
Add support for producing .deubg_frame sections.
...
llvm-svn: 131121
2011-05-10 03:54:12 +00:00
Rafael Espindola
3d5f7d1fc1
Factor some code into a new EmitFrames method.
...
llvm-svn: 131119
2011-05-10 03:14:15 +00:00
Rafael Espindola
c5f10dda05
Parsing and plumbing for .cfi_sections.
...
llvm-svn: 131117
2011-05-10 01:10:18 +00:00
Dan Gohman
392ab7a6ba
Change a few std::maps to DenseMaps.
...
llvm-svn: 131088
2011-05-09 18:44:09 +00:00
Rafael Espindola
0baeced1f4
Don't force relaxation of AdvanceLoc instructions on OS X. gdb is happy with
...
the smaller encoding and this cuts 270336 bytes from a release version of
clang and 1246272 bytes from a debug build.
llvm-svn: 131067
2011-05-08 14:35:21 +00:00
Eli Friedman
f580be6fe3
PR9869: Add explicit destructor declarations to Operator subclasses, to allow
...
compiling Operator.h with gcc 4.6 in C++0x mode.
llvm-svn: 131062
2011-05-08 01:59:22 +00:00
Eli Friedman
f608aeaefa
Fix comments per Duncan's review.
...
llvm-svn: 131055
2011-05-07 19:23:14 +00:00
Jakob Stoklund Olesen
0c88537b3d
Revert ExecutionEngine patches, they either failed to build or broke unit tests.
...
Please ensure the build is clean and tests are passing when recommitting.
llvm-svn: 131044
2011-05-07 03:12:54 +00:00
Rafael Espindola
003a45810d
Switch Darwin to the generic CIE/FDE printer.
...
llvm-svn: 131031
2011-05-06 22:29:04 +00:00
Dylan Noblesmith
a12e687660
ExecutionEngine: push TargetMachine creation into clients
...
In particular, into EngineBuilder. This should only impact
the private API between the EE and EB classes, not external
clients, since JITCtor and MCJITCtor are both protected members.
llvm-svn: 131026
2011-05-06 22:06:22 +00:00
Dylan Noblesmith
763e1abfba
ExecutionEngine: fix JIT/MCJIT selectTarget() duplication
...
This prepares for making JITCtor/MCJITCtor take a
TargetMachine* directly from clients like EngineBuilder.
llvm-svn: 131025
2011-05-06 22:05:43 +00:00
Eli Friedman
12e590e760
Make the logic for determining function alignment more explicit. No functionality change.
...
llvm-svn: 131012
2011-05-06 20:34:06 +00:00
Rafael Espindola
ef239d2fdc
Yet more dead code.
...
llvm-svn: 130988
2011-05-06 15:31:55 +00:00
Rafael Espindola
4228ece8fd
Update comments.
...
llvm-svn: 130987
2011-05-06 15:28:56 +00:00
Rafael Espindola
9b57a8739e
More dead code elimination.
...
llvm-svn: 130985
2011-05-06 15:22:26 +00:00
Rafael Espindola
59462d8ae3
Dead code elimination.
...
llvm-svn: 130984
2011-05-06 14:56:22 +00:00
Rafael Espindola
f109f01ec2
Remove the DwarfTable enum.
...
llvm-svn: 130959
2011-05-05 22:14:31 +00:00
Nick Lewycky
aed53f33f0
Fix typo. No functional change.
...
llvm-svn: 130949
2011-05-05 21:27:14 +00:00
Owen Anderson
35f6bae989
Allow FastISel of three-register-operand instructions.
...
llvm-svn: 130934
2011-05-05 17:59:04 +00:00
Hongbin Zheng
8785489968
Minor change: Fix the typo in RegionPass.h and RegionPass.cpp.
...
llvm-svn: 130920
2011-05-05 13:59:38 +00:00
Bill Wendling
7a13f3bde3
Remove a flag that would set the ".eh" symbol as .globl. MachO was the only one
...
who used this flag, and it now emits CFI and doesn't emit this anymore. All
other targets left this flag "false".
<rdar://problem/8486371>
llvm-svn: 130918
2011-05-05 06:49:15 +00:00
Mikhail Glushenkov
6a346f7333
llvmc: Make 'true' and 'false' instances of a 'Bool' class.
...
llvm-svn: 130915
2011-05-05 04:25:03 +00:00
Ted Kremenek
be5353a070
Add explicit 'unregister' method to CrashRecoveryConextCleanupRegistrar.
...
llvm-svn: 130885
2011-05-04 23:26:59 +00:00
Devang Patel
7f23f2aba6
If builder is initialized using an instruction as insertion point, then use the instruction's debug location as current debug location.
...
llvm-svn: 130874
2011-05-04 21:57:22 +00:00
Rafael Espindola
8346c59e6a
Producing a DW_FORM_addr for DW_AT_stmt_list is probably correct, but
...
it is both inefficient and unexpected by dwarfdump. Change to
a DW_FORM_data4.
While in here, change the predicate name to reflect that the position
is not really absolute (it is an offset), just that the linker needs a
relocation.
llvm-svn: 130846
2011-05-04 17:44:06 +00:00
Bill Wendling
8495856e95
Remove dead intrinsics.
...
llvm-svn: 130831
2011-05-04 02:40:54 +00:00
Duncan Sands
7497273b12
Implement some basic simplifications involving min/max, for example
...
max(a,b) >= a -> true. According to my super-optimizer, these are
by far the most common simplifications (of the -instsimplify kind)
that occur in the testsuite and aren't caught by -std-compile-opts.
llvm-svn: 130780
2011-05-03 19:53:10 +00:00
Bruno Cardoso Lopes
9dd575e4a9
Add a few ARM coprocessor intrinsics. Testcases included
...
llvm-svn: 130763
2011-05-03 17:29:22 +00:00
Bob Wilson
b718da182d
Fix a comment.
...
llvm-svn: 130761
2011-05-03 17:22:56 +00:00
Dan Gohman
7beb845bab
Add an unfolded offset field to LSR's Formula record. This is used to
...
model constants which can be added to base registers via add-immediate
instructions which don't require an additional register to materialize
the immediate.
llvm-svn: 130743
2011-05-03 00:46:49 +00:00
Duncan Sands
a897cad003
Forgot to commit the changes to this file.
...
llvm-svn: 130695
2011-05-02 16:34:19 +00:00
Chandler Carruth
c83eb00361
Remove an unused variable in NDEBUG (found with -Wunused-variable).
...
llvm-svn: 130688
2011-05-02 05:49:01 +00:00
Jakob Stoklund Olesen
e0ec7ed462
Add a SlotIndexes::insertMachineInstrInMaps to insert the instruction after any null indexes.
...
This makes a difference if a live interval is referring to a deleted
instruction. It can be important to insert an instruction before or after a
deleted instruction to avoid interference.
llvm-svn: 130686
2011-05-02 05:29:56 +00:00
Chris Lattner
c04013dd48
enhance memcpyopt to obey -fno-builtin and friends. This addresses a
...
problem reported on cfe-dev.
llvm-svn: 130661
2011-05-01 18:27:11 +00:00
NAKAMURA Takumi
3788ada5db
Windows/DynamicLibrary.inc: Clean up ELM_Callback. We may check the decl instead of the versions of individual libraries.
...
autoconf: Add checking ELM_Callback decl for mingw32 and mingw-w64.
cmake/config-ix.cmake: Add checking ELM_Callback decl for win32.
llvm-svn: 130657
2011-05-01 13:29:49 +00:00
Rafael Espindola
eb5d0cb4f4
GCC uses a different encoding of pointers in the FDE when using
...
-fno-dwarf2-cfi-asm. Implement the same behavior.
llvm-svn: 130637
2011-05-01 04:49:54 +00:00
Rafael Espindola
2f2c3bf31f
Simplify the handling of pcrel relocations on ELF. Now we do the right thing
...
for all symbol differences and can drop the old EmitPCRelSymbolValue
method.
This also make getExprForFDESymbol on ELF equal to the one on MachO, and it
can be made non-virtual.
llvm-svn: 130634
2011-05-01 03:50:49 +00:00
Jakob Stoklund Olesen
4ec9e1c33a
Avoid using stale entries form the sibling value map.
...
This could happen when trying to use a value that had been eliminated after dead
code elimination and folding loads.
llvm-svn: 130597
2011-04-30 06:42:21 +00:00
Rafael Espindola
7901d3790e
Add all the plumbing needed for MC to expand cfi to the old tables in
...
the final assembly. It is the same technique used when targeting
assemblers that don't support .loc.
llvm-svn: 130587
2011-04-30 03:44:37 +00:00