Chris Lattner
89a62c8fff
Update comment.
...
llvm-svn: 47539
2008-02-24 19:04:33 +00:00
Steve Naroff
f0ed31aafe
Move the initialization of SEL/objc_selector from Sema::Sema() to Sema::ActOnTranslationUnitScope() and make sure the type/struct get inserted into the translation unit scope.
...
Bug submitted by David Chisnall (thanks!).
llvm-svn: 47538
2008-02-24 16:25:02 +00:00
Duncan Sands
ba3d7e8e7d
Add support to LegalizeTypes for building legal vectors
...
out of illegal elements (BUILD_VECTOR). Uses and beefs
up BUILD_PAIR, though it didn't really have to. Like
most of LegalizeTypes, does not support soft-float.
This cures all "make check" vector building failures.
llvm-svn: 47537
2008-02-24 07:36:03 +00:00
Ted Kremenek
72be068ab3
Two more Windows-related fixes:
...
- More enum signeness bitfield fixes (MSVC treats enums as signed).
- Fixed in Lex/HeaderSearch.cpp an unsafe copy between two
HeaderSearch::PerFileInfo entries in a common vector. The copy involved two
calls to getFileInfo() within the assignment; these calls could have
side-effects that enlarged the internal vector, and with MSVC this would
invalidate one of the values in the assignment.
Patch by Argiris Kirtzidis!
llvm-svn: 47536
2008-02-24 03:55:14 +00:00
Ted Kremenek
d87eef89c8
In FileManager: use full paths to unique files and directories on Windows,
...
since inodes are bogus abstraction on that platform.
Patch by Argiris Kirtzidis!
llvm-svn: 47535
2008-02-24 03:15:25 +00:00
Bill Wendling
a7d1ed4c98
Some platforms use the same name for 32-bit and 64-bit registers (like
...
%r3 on PPC) in their ASM files. However, it's hard for humans to read
during debugging. Adding a new field to the register data that lets you
specify a different name to be printed than the one that goes into the
ASM file -- %x3 instead of %r3, for instance.
llvm-svn: 47534
2008-02-24 00:56:13 +00:00
Evan Cheng
2f18c39720
Backing out r47521 for now. This has broken a number of tests.
...
llvm-svn: 47533
2008-02-23 19:32:32 +00:00
Scott Michel
7d5eaec6dd
Merge current work back to tree to minimize diffs and drift. Major highlights
...
for CellSPU modifications:
- SPUInstrInfo.td refactoring: "multiclass" really is _your_ friend.
- Other improvements based on refactoring effort in SPUISelLowering.cpp,
esp. in SPUISelLowering::PerformDAGCombine(), where zero amount shifts and
rotates are now eliminiated, other scalar-to-vector-to-scalar silliness
is also eliminated.
- 64-bit operations are being implemented, _muldi3.c gcc runtime now
compiles and generates the right code. More work still needs to be done.
llvm-svn: 47532
2008-02-23 18:41:37 +00:00
Zhou Sheng
aae582ba99
Testcase for Revision 47478.
...
llvm-svn: 47531
2008-02-23 10:59:51 +00:00
Eli Friedman
401675b0de
Minor code cleanup.
...
llvm-svn: 47530
2008-02-23 07:32:49 +00:00
Evan Cheng
504c645b3e
Rematerialization logic was overly conservative when it comes to loads from fixed stack slots.
...
llvm-svn: 47529
2008-02-23 03:38:34 +00:00
Evan Cheng
405827dc26
Update test.
...
llvm-svn: 47527
2008-02-23 02:57:25 +00:00
Evan Cheng
379682b0e5
If remating a machine instr with virtual register operand, make sure the vr is avaliable at all uses regardless of whether it would be folded.
...
llvm-svn: 47526
2008-02-23 02:14:42 +00:00
Evan Cheng
174ef9a0bb
Remat of pic loads are now on by default.
...
llvm-svn: 47525
2008-02-23 02:08:30 +00:00
Evan Cheng
42cb72e52c
Turning on remat of pic loads.
...
llvm-svn: 47524
2008-02-23 02:07:42 +00:00
Dan Gohman
63d2d1f554
Fix a bug that caused opt and other tools to silently ignore
...
invalid command-line options.
llvm-svn: 47523
2008-02-23 01:55:25 +00:00
Evan Cheng
4d17671997
No need recognize load from a fixed argument slot as re-materializable. LiveIntervalAnalysis already handles it as a special case.
...
llvm-svn: 47522
2008-02-23 01:47:44 +00:00
Devang Patel
6a49782d33
Properly read and write bitcodes for multiple return values.
...
llvm-svn: 47521
2008-02-23 01:44:55 +00:00
Evan Cheng
e70afb021b
Recognize loads of arguments as re-materializable first. Therefore if isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction.
...
llvm-svn: 47520
2008-02-23 01:44:27 +00:00
Devang Patel
14f9994562
Regenerate.
...
llvm-svn: 47519
2008-02-23 01:17:37 +00:00
Devang Patel
6c4bc99c44
Use isa check instead of getTypeID() check.
...
llvm-svn: 47518
2008-02-23 01:17:17 +00:00
Ted Kremenek
f28aec5261
Fixed buffer overflow reported by Argiris Kirtzidis.
...
llvm-svn: 47517
2008-02-23 01:11:40 +00:00
Devang Patel
690fcf68b1
Remove unnecessary "inline" keywords.
...
llvm-svn: 47516
2008-02-23 01:11:02 +00:00
Ted Kremenek
f948d2a75f
Change encoding of TokenKind in IdentifierTable to be of type "unsigned"
...
instead of TokenKind because of signedness issues with MSVC and enums.
Patch from Argiris Kirtzidis.
llvm-svn: 47515
2008-02-23 01:05:54 +00:00
Devang Patel
d995551261
print getresult operand and its type directly.
...
llvm-svn: 47514
2008-02-23 01:04:26 +00:00
Evan Cheng
26e5d01ca1
Really. Why doesn't every arch support MMX?
...
llvm-svn: 47513
2008-02-23 00:56:14 +00:00
Ted Kremenek
652d18e37c
Patch from Argiris Kirtzidis:
...
The patch fixes some debug assertions that the msvcrt throws:
1)
- if (isprint(value) && value < 256) {
+ if (value < 256 && isprint(value)) {
isprint() does an assertion check of its own for value < 256; check value before calling it to prevent it.
2)
- Stmt->Names.push_back(std::string(&data[0], data.size()));
+ if (data.size() == 0)
+ Stmt->Names.push_back(std::string());
+ else
+ Stmt->Names.push_back(std::string(&data[0], data.size()));
If data.size() == 0 then data[0] throws "out of range" assertion.
llvm-svn: 47512
2008-02-23 00:52:04 +00:00
Devang Patel
2f2ff159a5
Use dyn_cast instead of isa + cast.
...
llvm-svn: 47511
2008-02-23 00:47:00 +00:00
Evan Cheng
69876ef700
Forgot this.
...
llvm-svn: 47510
2008-02-23 00:46:11 +00:00
Devang Patel
a22220d8f6
Regenerate
...
llvm-svn: 47509
2008-02-23 00:38:56 +00:00
Devang Patel
59643e575f
To support multiple return values, now ret instruction supports multiple operands instead of one aggregate operand.
...
llvm-svn: 47508
2008-02-23 00:35:18 +00:00
Evan Cheng
4f5cb4cdac
Fix spill weight updating bug.
...
llvm-svn: 47507
2008-02-23 00:33:04 +00:00
Ted Kremenek
b0b7d28f67
Fixed horrid bug in LiveVariables analysis where we were only merging at
...
confluence points the liveness information for variables (Decls) and NOT
block-level expressions.
llvm-svn: 47506
2008-02-22 23:17:20 +00:00
Dale Johannesen
09f410b6d7
Split ParameterAttributes.h, putting the complicated
...
stuff into ParamAttrsList.h. Per feedback from
ParamAttrs changes.
llvm-svn: 47504
2008-02-22 22:17:59 +00:00
Gordon Henriksen
60c140433b
Improving wording.
...
llvm-svn: 47503
2008-02-22 21:55:51 +00:00
Gordon Henriksen
6ee6b7c3c1
Adding a note about IR generation to the LLVM FAQ.
...
llvm-svn: 47502
2008-02-22 20:58:29 +00:00
Evan Cheng
cee351c410
Test case for PR2082.
...
llvm-svn: 47501
2008-02-22 20:38:49 +00:00
Evan Cheng
b6d981bddd
Same isPhysRegAvailable bug as local register allocator.
...
llvm-svn: 47500
2008-02-22 20:31:32 +00:00
Evan Cheng
52c15b3e6d
Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when
...
it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI.
llvm-svn: 47499
2008-02-22 20:30:53 +00:00
Ted Kremenek
c77f34daad
Modified clang driver option -dump-live-variables to (optionally) use the
...
--analyze-function option to analyze specific functions.
llvm-svn: 47498
2008-02-22 20:13:09 +00:00
Ted Kremenek
88329bf0ea
clang driver options --dump-cfg and --view-cfg now (optionally) use the
...
--analyze-function option to dump/view the CFGs of specific functions.
llvm-svn: 47497
2008-02-22 20:00:31 +00:00
Evan Cheng
a1977d32f0
Add debugging printfs.
...
llvm-svn: 47496
2008-02-22 19:57:06 +00:00
Devang Patel
faafcfd3ce
Regenerate
...
llvm-svn: 47495
2008-02-22 19:31:30 +00:00
Devang Patel
8f4062975e
Use SymbolicValueRef to parse getresult operand
...
llvm-svn: 47494
2008-02-22 19:31:15 +00:00
Evan Cheng
b1d1f9f0a9
Remove an invalid assertion now that there are implicit virtual register operands.
...
llvm-svn: 47493
2008-02-22 19:25:04 +00:00
Evan Cheng
ea1ef87ea2
Make sure reload of implicit uses are issued before remat's.
...
llvm-svn: 47492
2008-02-22 19:22:06 +00:00
Ted Kremenek
76c03b4a55
When running the GRSimpleVals analysis, skip functions that do not
...
appear in a file.
llvm-svn: 47491
2008-02-22 19:10:58 +00:00
Ted Kremenek
43638a87e5
Punt on unifying symbolic lvalues. This won't be needed for many checkers.
...
llvm-svn: 47489
2008-02-22 18:41:59 +00:00
Devang Patel
ac6951a0b9
Add StripDeadPrototypes pass.
...
llvm-svn: 47488
2008-02-22 18:39:29 +00:00
Dale Johannesen
45b0ef25b2
Generated files for 47484.
...
llvm-svn: 47485
2008-02-22 17:50:51 +00:00