Zhou Sheng
c1cf629e41
Fix a PassManager pointer use-after-free bug.
...
The bug can be triggered when we require LoopInfo analysis ahead of DominatorTree construction in a Module Pass. The cause is that the LoopInfo analysis itself also invokes DominatorTree construction, therefore, when PassManager schedules LoopInfo, it will add DominatorTree first. Then after that, when the PassManger turns to schedule DominatorTree invoked by the above ModulePass, it finds there is already a DominatorTree, so it delete the redundant one. However, somehow it still try to access that pass pointer after free as code pasted below, which results in segment fault.
llvm-svn: 168581
2012-11-26 05:45:53 +00:00
Meador Inge
604937d1cc
instcombine: Migrate toascii optimizations
...
This patch migrates the toascii optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
llvm-svn: 168580
2012-11-26 03:38:52 +00:00
Meador Inge
a62a39e0e9
instcombine: Migrate isascii optimizations
...
This patch migrates the isascii optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
llvm-svn: 168579
2012-11-26 03:10:07 +00:00
Meador Inge
9a59ab6133
instcombine: Migrate isdigit optimizations
...
This patch migrates the isdigit optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
llvm-svn: 168578
2012-11-26 02:31:59 +00:00
Joe Abbey
15d9834df9
Removing SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
...
Adding CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
This is to handle the wackiness on a Mac host where cmake detects:
CMAKE_CXX_COMPILER == "/usr/bin/c++"
CMAKE_C_COMPILER == "/usr/bin/gcc"
llvm-svn: 168577
2012-11-26 02:02:08 +00:00
Rafael Espindola
e42945c033
Fix gcc's -Wunused-but-set-variable warnings.
...
llvm-svn: 168576
2012-11-26 00:56:44 +00:00
Meador Inge
24d134c375
Fix bogus comment; no functional change.
...
llvm-svn: 168575
2012-11-26 00:25:33 +00:00
Meador Inge
a0b6d87879
instcombine: Migrate *abs optimizations
...
This patch migrates the *abs optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
llvm-svn: 168574
2012-11-26 00:24:07 +00:00
Meador Inge
7415f8403d
instcombine: Migrate ffs* optimizations
...
This patch migrates the ffs* optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
llvm-svn: 168571
2012-11-25 20:45:27 +00:00
Nadav Rotem
ee7ede76f4
Move the max vector width to a constant parameter. No functionality change.
...
llvm-svn: 168570
2012-11-25 16:48:08 +00:00
Nadav Rotem
ef33b5076c
Fix the document style.
...
llvm-svn: 168569
2012-11-25 16:39:01 +00:00
Nadav Rotem
12192f19eb
Refactor the ptr runtime check generation code. No functionality change.
...
llvm-svn: 168568
2012-11-25 16:27:16 +00:00
Joe Abbey
2ad8df24ec
Code Custodian:
...
- Widespread trailing space removal
- A dash of OCD spacing to block align enums
- joined a line that probably needed 80 cols a while back
llvm-svn: 168566
2012-11-25 15:23:39 +00:00
Rafael Espindola
cdb9a538d6
Add support for .cfi_register now that it is easy to extent the representation
...
to support it. Original patch with the parsing and plumbing by the PaX team and
Roman Divacky. I added the bits in MCDwarf.cpp and the test.
llvm-svn: 168565
2012-11-25 15:14:49 +00:00
Benjamin Kramer
18907acb3f
Move semantics are great, don't destroy the optimization opportunity with trivial copy ctors.
...
No functionality change.
llvm-svn: 168561
2012-11-25 11:52:03 +00:00
Nadav Rotem
b15d9fe24d
Rename method. No functionality change.
...
llvm-svn: 168560
2012-11-25 09:13:57 +00:00
Nadav Rotem
bf5173460f
The induction-pointer work is inspired by a research paper. This commit adds a reference.
...
llvm-svn: 168559
2012-11-25 09:09:26 +00:00
Nadav Rotem
ea3824f160
Add support for pointer induction variables even when there is no integer induction variable.
...
llvm-svn: 168558
2012-11-25 08:41:35 +00:00
Craig Topper
79bd205d8c
Refactor to make helper method static.
...
llvm-svn: 168557
2012-11-25 08:08:58 +00:00
Rafael Espindola
fa4acf5704
Further cleanups. Thanks for Sean Silva for noticing it.
...
llvm-svn: 168556
2012-11-25 02:50:32 +00:00
Craig Topper
12cf860d4f
Add an extra slash so doxygen comments will be properly recognized.
...
llvm-svn: 168554
2012-11-25 00:59:59 +00:00
Craig Topper
268b62288e
Remove duplicate check of LimitFloatPrecision. It was already checked earlier before IsExp10 could be set to true.
...
llvm-svn: 168553
2012-11-25 00:48:58 +00:00
Craig Topper
8571944cf1
Factor common code out of individual if blocks into common tail.
...
llvm-svn: 168551
2012-11-25 00:15:07 +00:00
Craig Topper
d374694b07
Remove redundant calls to getCurDebugLoc in visitIntrinsicCall. It's already called at the start of the function and captured in a local variable.
...
llvm-svn: 168548
2012-11-24 23:05:23 +00:00
Craig Topper
d2638c1894
Refactor a bit to make some helper methods static.
...
llvm-svn: 168546
2012-11-24 18:52:06 +00:00
Benjamin Kramer
9bcb9226f6
libLTO: Add a utility method to initialize the disassemblers.
...
Necessary to give disassembler users (like darwin's otool) a possibility to
dlopen libLTO and still initialize the required LLVM bits. This used to go
through libMCDisassembler but that's a gross layering violation, the MC layer
can't pull in functions from the targets. Adding a function to libLTO is a bit
of a hack but not worse than exposing other disassembler bits from libLTO.
Fixes PR14362.
llvm-svn: 168545
2012-11-24 16:59:10 +00:00
Benjamin Kramer
1694f91266
PPC: Reinstate the fatal error when trying to emit a macho file.
...
llvm-svn: 168543
2012-11-24 15:23:49 +00:00
Benjamin Kramer
07ea85a5e6
ARM: Share applyFixup between ELF and Darwin.
...
The implementations already diverged a bit, merge them back together.
llvm-svn: 168542
2012-11-24 14:36:43 +00:00
Benjamin Kramer
dd76a93af5
PPC: MCize most of the darwin PIC emission.
...
The last remaining bit is "bcl 20, 31, AnonSymbol", which I couldn't find the
instruction definition for. Only whitespace changes in assembly output.
llvm-svn: 168541
2012-11-24 13:18:25 +00:00
Benjamin Kramer
8abfec3967
PPC: Share applyFixup between ELF and Darwin.
...
llvm-svn: 168540
2012-11-24 13:18:17 +00:00
Benjamin Kramer
69dc3fe461
PPC: Simplify code with Twines.
...
No functionality change.
llvm-svn: 168539
2012-11-24 13:18:11 +00:00
Craig Topper
4a98175800
Factor some common code out of individual if blocks.
...
llvm-svn: 168538
2012-11-24 08:22:37 +00:00
Rafael Espindola
cc0c74a76c
Change the representation of MCCFIInstruction.
...
We now store the Register and Offset directly. MachineLocation is gone (from
this file)!
llvm-svn: 168536
2012-11-24 04:33:48 +00:00
Rafael Espindola
5dce65b21e
Give each MCCFIInstruction its own opcode.
...
This untangles the switch cases of the old Move and RelMove opcodes a bit
and makes it clear how to add new instructions.
llvm-svn: 168534
2012-11-24 03:10:54 +00:00
Rafael Espindola
7a6e441262
Move a bit of duplicated code into a helper function.
...
llvm-svn: 168533
2012-11-24 02:18:49 +00:00
Rafael Espindola
1c3086cc91
Refactor how MCCFIInstructions are created.
...
Give MCCFIInstruction a single, private constructor and add helper static
methods that create each type of cfi instruction. This is is preparation
for changing its representation. The representation with a pair
MachineLocations older than MC and has been abused quiet a bit to support
more cfi instructions.
llvm-svn: 168532
2012-11-24 02:01:08 +00:00
Benjamin Kramer
455fa35e51
CodeGenPrepare: Move ret duplication out of the instruction iteration loop.
...
It can delete the block, and the loop continues on free'd memory.
No change in output. Found by valgrind.
llvm-svn: 168525
2012-11-23 19:17:06 +00:00
Craig Topper
bef254ab16
Refactor a bit to make some helper functions static.
...
llvm-svn: 168524
2012-11-23 18:38:31 +00:00
Rafael Espindola
b3b60570e3
Add a -disable-cfi option to llvm-mc. This is useful for debugging as
...
it will expand any .cfi_* directives in the input assembly.
Unfortunately this cannot replace elf-dump in tests as the asm streamer
cannot relax the line advance opcodes.
llvm-svn: 168522
2012-11-23 17:37:34 +00:00
Rafael Espindola
9bb247813a
Implement .cfi_undefined. Based on a patch from PaX team, updated by
...
Roman Divacky. I just added the testcase.
llvm-svn: 168520
2012-11-23 16:59:41 +00:00
Patrik Hägglund
59189597de
Disallow the undocumented practice of starting the datalayout string with '-'.
...
Update some test cases accordingly.
llvm-svn: 168516
2012-11-23 14:51:42 +00:00
Bill Wendling
6966727299
Update call to the new syntax.
...
llvm-svn: 168512
2012-11-23 11:05:35 +00:00
Joey Gouly
9519823271
Remove unused parameter Penalty from the BoundsChecking pass.
...
llvm-svn: 168511
2012-11-23 10:47:35 +00:00
Patrik Hägglund
f77cc055cd
Cleanup: Simplify loop end logic in computeRegisterProperties().
...
llvm-svn: 168507
2012-11-23 08:35:04 +00:00
Venkatraman Govindaraju
fee0e0f792
Added me as the owner of the Sparc backend
...
llvm-svn: 168504
2012-11-22 22:14:48 +00:00
Rafael Espindola
02ad0cb075
Mark me as the owner of the gold plugin.
...
llvm-svn: 168502
2012-11-22 16:43:44 +00:00
Meador Inge
780a1861f1
Add more functions to the target library information.
...
I discovered a few more missing functions while migrating optimizations
from the simplify-libcalls pass to the instcombine (I already added some
in r167659).
llvm-svn: 168501
2012-11-22 15:36:42 +00:00
NAKAMURA Takumi
6b8b2a9b98
llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp: Prune AddressSanitizerCreateGlobalRedzonesPass::ID. [-Wunused-variable]
...
llvm-svn: 168499
2012-11-22 14:18:25 +00:00
Eli Bendersky
26e7efeb1a
Fix 80-col violation
...
llvm-svn: 168498
2012-11-22 14:10:40 +00:00
NAKAMURA Takumi
bb9279a6af
IntelJITEventsWrapper.h: Prune two members, FinalizeThreadFunc and FinalizeProcessFunc, for now. [-Wunused-private-field]
...
llvm-svn: 168495
2012-11-22 13:18:37 +00:00