| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
Getelementptrs that are defined to wrap are virtually useless to
optimization, and getelementptrs that are undefined on any kind
of overflow are too restrictive -- it's difficult to ensure that
all intermediate addresses are within bounds. I'm going to take
a different approach.
Remove a few optimizations that depended on this flag.
llvm-svn: 76437
|
|
|
|
| |
llvm-svn: 76280
|
|
|
|
| |
llvm-svn: 76210
|
|
|
|
| |
llvm-svn: 76126
|
|
|
|
| |
llvm-svn: 76113
|
|
|
|
| |
llvm-svn: 76097
|
|
|
|
|
|
|
|
| |
number of issues in
our current context-passing stuff, which is also fixed here
llvm-svn: 76089
|
|
|
|
| |
llvm-svn: 75840
|
|
|
|
| |
llvm-svn: 75830
|
|
|
|
| |
llvm-svn: 75805
|
|
|
|
|
|
| |
unused - remove it.
llvm-svn: 75798
|
|
|
|
| |
llvm-svn: 75703
|
|
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
|
|
|
| |
llvm-svn: 75559
|
|
|
|
|
|
| |
used anyways.
llvm-svn: 75546
|
|
|
|
| |
llvm-svn: 75508
|
|
|
|
| |
llvm-svn: 75497
|
|
|
|
|
|
|
|
|
| |
Constants.cpp and ConstantFold.cpp.
This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's
the only way I could figure out to make this process vaguely incremental.
llvm-svn: 75445
|
|
|
|
| |
llvm-svn: 75416
|
|
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
|
|
|
|
|
| |
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
|
|
|
|
|
|
|
| |
these instructions, no autoupgrade or backwards compatibility support is
provided.
llvm-svn: 74991
|
|
|
|
| |
llvm-svn: 74931
|
|
|
|
| |
llvm-svn: 74317
|
|
|
|
| |
llvm-svn: 74133
|
|
|
|
|
|
|
|
|
| |
Rather than trying to make the global reader-writer lock work,
create separate recursive mutexes for each value map. The recursive-ness fixes the double-acquiring issue, which having one per ValueMap
lets us continue to maintain some concurrency.
llvm-svn: 73801
|
|
|
|
|
|
|
|
|
|
| |
The constant creation
gets involved, and we end up trying to recursively acquire a writer lock. The fix for this is slightly horrible,
and involves passing a boolean "locked" parameter around in Constants.cpp, but it's better than having locked and
unlocked versions of most of the code.
llvm-svn: 73790
|
|
|
|
| |
llvm-svn: 73778
|
|
|
|
|
|
| |
multithreading is disabled.
llvm-svn: 73714
|
|
|
|
| |
llvm-svn: 73707
|
|
|
|
| |
llvm-svn: 73631
|
|
|
|
|
|
|
|
| |
duration of a scope. Simplify a lot of uses of
writer locks in Constants.cpp by using it.
llvm-svn: 73630
|
|
|
|
|
|
|
|
| |
pushing it into the ValueMap from the callers.
Document those ValueMap functions that are _not_ locked, so that callers are aware that they need to do the locking themselves.
llvm-svn: 73628
|
|
|
|
|
|
| |
to push some of the R/W locking into FoldingSet.
llvm-svn: 73624
|
|
|
|
| |
llvm-svn: 73433
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
failures.
To support this, add some utility functions to Type to help support
vector/scalar-independent code. Change ConstantInt::get and
ConstantFP::get to support vector types, and add an overload to
ConstantInt::get that uses a static IntegerType type, for
convenience.
Introduce a new getConstant method for ScalarEvolution, to simplify
common use cases.
llvm-svn: 73431
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integer and floating-point opcodes, introducing
FAdd, FSub, and FMul.
For now, the AsmParser, BitcodeReader, and IRBuilder all preserve
backwards compatability, and the Core LLVM APIs preserve backwards
compatibility for IR producers. Most front-ends won't need to change
immediately.
This implements the first step of the plan outlined here:
http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt
llvm-svn: 72897
|
|
|
|
| |
llvm-svn: 72610
|
|
|
|
|
|
|
|
|
| |
type as a target independent constant expression. I confess
that I didn't check that this method works as intended (though
I did test the equivalent hand-written IR a little). But what
could possibly go wrong!
llvm-svn: 72213
|
|
|
|
|
|
|
| |
Constant* in preperation of a future change to support holding non-Constants
in an MDNode.
llvm-svn: 71407
|
|
|
|
|
|
|
|
| |
Constant, MDString and MDNode which can only be used by globals with a name
that starts with "llvm." or as arguments to a function with the same naming
restriction.
llvm-svn: 68420
|
|
|
|
| |
llvm-svn: 68034
|
|
|
|
| |
llvm-svn: 68033
|
|
|
|
|
|
| |
of relocations required.
llvm-svn: 68004
|
|
|
|
|
|
|
|
|
| |
unneeded bitcast is requested. This is common for frontends who just unconditionally
cast even if the target is often the right type already. THis prevents going into
getFoldedCast which switches on the opcode and does a bunch of other stuff before
doing the same opzn.
llvm-svn: 67435
|
|
|
|
|
|
|
| |
shift constant expressions, and add support for folding vector
shift constant expressions. This fixes PR3802.
llvm-svn: 67010
|
|
|
|
| |
llvm-svn: 66367
|
|
|
|
|
|
| |
and put @file directives on their own comment line.
llvm-svn: 65920
|
|
|
|
|
|
|
|
| |
equal to the
type of the vectors being shuffled.
llvm-svn: 64401
|
|
|
|
|
|
| |
notably, they should support vectors and aggregates.
llvm-svn: 61462
|