Commit Graph

8816 Commits

Author SHA1 Message Date
Owen Anderson
438d3946af Add support for const thread locals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74226 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 23:31:18 +00:00
Owen Anderson
27fcfe1364 Add a configure test for pthread_getspecific, and use it when building ThreadLocal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74222 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 23:10:26 +00:00
Owen Anderson
4a28522c1a Add a class for supporting platform independent thread-local storage.
Windows people, please double-check/patch this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74209 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 21:58:01 +00:00
Chris Lattner
f5a5546f43 add targetflags to jump tables and constant pool entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74204 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 21:35:31 +00:00
Chris Lattner
2a4ed82ce2 allow setting target operand flags on TargetGlobalAddress nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74203 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 21:21:14 +00:00
Chris Lattner
1af2231da6 start bringing targetoperand flags into isel, first up, ExternalSymbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74199 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 18:45:50 +00:00
Mikhail Glushenkov
7defa2d3d5 Make -save-temps behave like in GCC 4.5.
The -save-temps option now behaves like described in GCC 4.5 release notes
(you can specify output directory for temporary files with -save-temps=obj
-o $DIRNAME). I do not have GCC 4.5 installed, so if there are any
inconsistencies between llvmc and GCC in the implementation of this
feature, please let me know.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74190 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 18:20:10 +00:00
Chris Lattner
b1fb84dee9 just eliminate the code entirely!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74183 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 17:28:07 +00:00
Chris Lattner
d5899793a6 Clone target flags when copying mbb operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74181 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 17:21:32 +00:00
Owen Anderson
a8dbf36f3f Privatize some more debug-related static data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74179 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 16:55:32 +00:00
Sanjiv Gupta
8ebd4b6422 Identify unconditional gotos and generate a page sel instructions before them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74172 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 11:03:14 +00:00
Jeffrey Yasskin
df5a7daff9 Add a JITEventListener interface that gets called back when a new function is
emitted or the machine code for a function is freed.  Chris mentioned that we
may also want a notification when a stub is emitted, but that'll be a future
change.  I intend to use this to tell oprofile where functions are emitted and
what lines correspond to what addresses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74157 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 02:04:04 +00:00
Chris Lattner
9a96c425db ad MachineInstrBuilder support for target flags on operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74155 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 01:16:22 +00:00
Dan Gohman
a278f3f552 Add a getUniqueExitBlock utility function, similar to getExitBlock,
but for getUniqueExitBlocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 00:09:57 +00:00
Owen Anderson
6279cd85e9 Now with EVEN FEWER statics!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74143 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 00:04:15 +00:00
Owen Anderson
2b2000174b Didn't mean to commit this part.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74135 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 22:58:48 +00:00
Owen Anderson
04c05f7630 Down with statics!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74134 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 22:53:20 +00:00
Devang Patel
70535451e0 Add constructor to create MDString using std::string
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74133 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 22:42:39 +00:00
Owen Anderson
bd58edf591 Move local statics to per-instance variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74132 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 22:28:12 +00:00
David Greene
02a6218774 Increase limit for OpActions array
The OpActions array had a limit of 32 value types, so change it to use
MVT::MAX_ALLOWED_VALUETYPE in its declaration and change the accesses to
this array to work with a VT.getSimpleVT() that is larger than 32.

Also, add a comment to the place where MVT::MAX_ALLOWED_VALUETYPE is
defined indicating that it must be a multiple of 32.

This is part of the work allow MVT::LAST_VALUETYPE be greater than 32.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74130 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 22:22:02 +00:00
Owen Anderson
09fc0fa0b1 Get rid of a static boolean.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74125 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 22:08:59 +00:00
Andreas Bolka
cb21010fa0 Scaffolding for LDA pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74120 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 21:29:13 +00:00
Bob Wilson
e46161f10c Fix the Ocaml bindings for the ExecutionEngine: with the change to build
libraries instead of relinked objects, the interpreter, JIT, and native
target libraries were not being linked in to an ocaml program using the
ExecutionEngine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74117 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 21:09:18 +00:00
Owen Anderson
1c47c7db1e Update for DOTGraphTraits changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74113 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 20:41:17 +00:00
David Greene
f2e19d5dcf This increases the maximum for MVT::LAST_VALUETYPE
This change doubles the allowable value for MVT::LAST_VALUETYPE. It does
this by doing several things.

1. Introduces MVT::MAX_ALLOWED_LAST_VALUETYPE which in this change has a
value of 64.  This value contains the current maximum for the
MVT::LAST_VALUETYPE.

2. Instead of checking "MVT::LAST_VALUETYPE <= 32", all of those uses
now become "MVT::LAST_VALUETYPE <= MVT::MAX_ALLOWED_LAST_VALUETYPE"

3. Changes the dimension of the ValueTypeActions from 2 elements to four
elements and adds comments ahead of the declaration indicating the it is
"(MVT::MAX_ALLOWED_LAST_VALUETYPE/32) * 2".  This at least lets us find
what is affected if and when MVT::MAX_ALLOWED_LAST_VALUETYPE gets
changed.

4. Adds initializers for the new elements of ValueTypeActions.

This does NOT add any types in MVT. That would be done separately.

This doubles the size of ValueTypeActions from 64 bits to 128 bits and
gives us the freedom to add more types for AVX.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74110 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 19:41:55 +00:00
Daniel Dunbar
84a2926fb7 Sketch streamer support for .align, .org functionality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74109 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 19:25:34 +00:00
Chris Lattner
0de1fc4f41 sink management of DwarfWriter & MachineModuleInfo into the AsmPrinter base class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74101 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 19:09:55 +00:00
Chris Lattner
0a7befa8bd eliminate the ExtWeakSymbols set from AsmPrinter. This eliminates
a bunch of code from all the targets, and eliminates nondeterministic
ordering of directives being emitted in the output.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74096 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 18:52:01 +00:00
Chris Lattner
31530617dd Rearrange some stuff in MachineOperand and add a new TargetFlags field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74087 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 17:54:48 +00:00
Owen Anderson
8cbc94afb7 Get rid of the global CFGOnly flag by threading a ShortNames parameters through the GraphViz rendering code.
Update other uses in the codebase for this change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74084 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 17:37:09 +00:00
Daniel Dunbar
71d259bc4b We decided to not worry about Atoms for now, it should be straightforward to
reintroduce them later.

Also, don't require MCSection* when creating a symbol.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74081 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 17:00:42 +00:00
Daniel Dunbar
d814b21509 MCStreamer: Add a few more "symbol attributes".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74077 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 16:36:52 +00:00
Dan Gohman
650919e8b0 Remove an obsolete comment and fix some 80-column violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74059 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 04:47:54 +00:00
Chris Lattner
c69485e34d add trivial support for passing label definitions through the MCStreamer.
This is suboptimal in several aspects, see the commented out assertion.
I need to talk to Daniel about this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74057 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 04:31:49 +00:00
Dan Gohman
40a5a1b39e Extend ScalarEvolution's multiple-exit support to compute exact
trip counts in more cases.

Generalize ScalarEvolution's isLoopGuardedByCond code to recognize
And and Or conditions, splitting the code out into an
isNecessaryCond helper function so that it can evaluate Ands and Ors
recursively, and make SCEVExpander be much more aggressive about
hoisting instructions out of loops.

test/CodeGen/X86/pr3495.ll has an additional instruction now, but
it appears to be due to an arbitrary register allocation difference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74048 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 01:18:18 +00:00
Daniel Dunbar
a11af531ec Start MCAsmStreamer implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74044 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 01:03:06 +00:00
Dan Gohman
6bbcba18db Move the special cases for constants out of getUnknown and into
createSCEV. Also, recognize UndefValue in createSCEV.

Change getIntegerSCEV's comment to avoid mentioning FP types,
and re-implement it in terms of getConstant instead of getUnknown.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74041 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 00:54:57 +00:00
Chris Lattner
f4a9061b6b stub out a trivial constructor method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74038 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 00:51:35 +00:00
Dan Gohman
4d289bf4af Add an isAllOnesValue utility function, similar to isZero and isOne.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74032 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 00:30:26 +00:00
Bob Wilson
a96751fc8f Provide InitializeAllTargets and InitializeNativeTarget functions in the
C bindings.  Change all the backend "Initialize" functions to have C linkage.
Change the "llvm/Config/Targets.def" header to use C-style comments to avoid
compile warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74026 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 23:59:40 +00:00
Daniel Dunbar
ba1da8a7b1 Update for MCImm -> MCValue rename.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 23:39:15 +00:00
Chris Lattner
a33ccc7956 rename MCImm ->MCValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74023 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 23:31:52 +00:00
Daniel Dunbar
381e92c66a Add comments for the MCStreamer interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74019 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 23:02:31 +00:00
Devang Patel
9af2fa879c It is not a good idea to have data member's name match argument's name. In fact, it is a simple receipe to waste an hour or so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74018 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 22:25:41 +00:00
Devang Patel
0de4fa621e Add DISubprogram::getReturnTypeName()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 22:07:48 +00:00
Daniel Dunbar
ecc63f8687 Start flushing out MCContext.
- Lives inside new library lib/MC (LLVMMC.a)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74013 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 22:01:43 +00:00
Owen Anderson
92915e31e9 Use atomic operations when accessing statistics, and make the lazy initialization of statistics actually threadsafe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 21:19:38 +00:00
Owen Anderson
e0fa0b42b2 Add atomic multiply and divide operations, built on top of CompareAndSwap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74004 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 21:19:04 +00:00
Owen Anderson
46d9a64944 Make timers threadsafe again. This isn't quite as nice as I'd hoped (it uses locking rather than atomic arithmetic),
but should work on all the platforms we care about.

I might revisit this if a totally awesome way to do it occurs to me.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74002 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 20:52:29 +00:00
Mikhail Glushenkov
d80d8690af Make llvmc work again.
Chris recently broke llvmc with his Makefile changes (r75379). That patch made
the global change .o -> .a, which caused built-in llvmc plugins to stop working
since plugin initialization in llvmc is based on static variables not referenced
from the main executable. This patch implements auto-generated forced references
to the plugin libraries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74000 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 20:46:48 +00:00