| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
vector. This potentially saves a resizing.
llvm-svn: 149369
|
|
|
|
| |
llvm-svn: 149368
|
|
|
|
|
|
| |
ConstantDataArray::getString instead.
llvm-svn: 149365
|
|
|
|
|
|
| |
realize I was that close...
llvm-svn: 149354
|
|
|
|
|
|
| |
dramatically more efficient than GetConstantStringInfo.
llvm-svn: 149352
|
|
|
|
| |
llvm-svn: 149340
|
|
|
|
| |
llvm-svn: 149328
|
|
|
|
| |
llvm-svn: 149323
|
|
|
|
| |
llvm-svn: 149322
|
|
|
|
| |
llvm-svn: 149318
|
|
|
|
| |
llvm-svn: 149317
|
|
|
|
| |
llvm-svn: 149316
|
|
|
|
|
|
|
| |
The eh.selector and eh.resume intrinsics aren't used anymore. Get rid of some
calls to them.
llvm-svn: 149314
|
|
|
|
| |
llvm-svn: 149312
|
|
|
|
| |
llvm-svn: 149307
|
|
|
|
| |
llvm-svn: 149300
|
|
|
|
| |
llvm-svn: 149289
|
|
|
|
| |
llvm-svn: 149275
|
|
|
|
|
|
|
|
| |
http://code.google.com/p/address-sanitizer/issues/detail?id=32)
The redzones emitted by AddressSanitizer for CFString instances confuse the linker and are of little use, so we shouldn't add them.
llvm-svn: 149243
|
|
|
|
| |
llvm-svn: 149185
|
|
|
|
| |
llvm-svn: 149172
|
|
|
|
|
|
|
| |
we should (theoretically optimize and codegen ConstantDataVector as well
as ConstantVector.
llvm-svn: 149116
|
|
|
|
|
|
| |
new methods recently added to (sometimes greatly!) simplify code.
llvm-svn: 149024
|
|
|
|
| |
llvm-svn: 149006
|
|
|
|
| |
llvm-svn: 148946
|
|
|
|
| |
llvm-svn: 148934
|
|
|
|
| |
llvm-svn: 148929
|
|
|
|
| |
llvm-svn: 148846
|
|
|
|
| |
llvm-svn: 148806
|
|
|
|
| |
llvm-svn: 148697
|
|
|
|
| |
llvm-svn: 148578
|
|
|
|
|
|
| |
Fixes PR11783: bad cast to AddRecExpr.
llvm-svn: 148572
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: LLVM needs more function attributes than currently available (32 bits).
One such proposed attribute is "address_safety", which shows that a function is being checked for address safety (by AddressSanitizer, SAFECode, etc).
Solution:
- extend the Attributes from 32 bits to 64-bits
- wrap the object into a class so that unsigned is never erroneously used instead
- change "unsigned" to "Attributes" throughout the code, including one place in clang.
- the class has no "operator uint64 ()", but it has "uint64_t Raw() " to support packing/unpacking.
- the class has "safe operator bool()" to support the common idiom: if (Attributes attr = getAttrs()) useAttrs(attr);
- The CTOR from uint64_t is marked explicit, so I had to add a few explicit CTOR calls
- Add the new attribute "address_safety". Doing it in the same commit to check that attributes beyond first 32 bits actually work.
- Some of the functions from the Attribute namespace are worth moving inside the class, but I'd prefer to have it as a separate commit.
Tested:
"make check" on Linux (32-bit and 64-bit) and Mac (10.6)
built/run spec CPU 2006 on Linux with clang -O2.
This change will break clang build in lib/CodeGen/CGCall.cpp.
The following patch will fix it.
llvm-svn: 148553
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LSR has gradually been improved to more aggressively reuse existing code, particularly existing phi cycles. This exposed problems with the SCEVExpander's sloppy treatment of its insertion point. I applied some rigor to the insertion point problem that will hopefully avoid an endless bug cycle in this area. Changes:
- Always used properlyDominates to check safe code hoisting.
- The insertion point provided to SCEV is now considered a lower bound. This is usually a block terminator or the use itself. Under no cirumstance may SCEVExpander insert below this point.
- LSR is reponsible for finding a "canonical" insertion point across expansion of different expressions.
- Robust logic to determine whether IV increments are in "expanded" form and/or can be safely hoisted above some insertion point.
Fixes PR11783: SCEVExpander assert.
llvm-svn: 148535
|
|
|
|
|
|
| |
rdar://10531041.
llvm-svn: 148490
|
|
|
|
| |
llvm-svn: 148487
|
|
|
|
| |
llvm-svn: 148419
|
|
|
|
|
|
| |
of recognizing them by name.
llvm-svn: 148416
|
|
|
|
| |
llvm-svn: 148415
|
|
|
|
|
|
| |
autorelease push+pop pairs.
llvm-svn: 148330
|
|
|
|
|
|
|
| |
EP_ModuleOptimizerEarly, to allow passes to be added before the
main ModulePass optimizers.
llvm-svn: 148329
|
|
|
|
|
|
|
| |
It's becoming clear that LoopSimplify needs to unconditionally create loop preheaders. But that is a bigger fix. For now, continuing to hack LSR.
Fixes rdar://10701050 "Cannot split an edge from an IndirectBrInst" assert.
llvm-svn: 148288
|
|
|
|
|
|
| |
necessary)
llvm-svn: 148284
|
|
|
|
| |
llvm-svn: 148252
|
|
|
|
| |
llvm-svn: 148216
|
|
|
|
|
|
|
|
|
| |
std::map, since we need to keep a valid pointer to properties of current loop.
Message for r148132:
LoopUnswitch: All helper data that is collected during loop-unswitch iterations was moved to separated class (LUAnalysisCache).
llvm-svn: 148215
|
|
|
|
| |
llvm-svn: 148164
|
|
|
|
| |
llvm-svn: 148149
|
|
|
|
| |
llvm-svn: 148133
|
|
|
|
|
|
| |
iterations was moved to separated class (LUAnalysisCache).
llvm-svn: 148132
|